在现代 JavaScript 开发中,ECMAScript 6(简称 ES6)带来了许多强大的新特性,极大地提升了开发效率和代码的可读性。本文将带你全面了解 ES6 的主要新特性。
一、let 和 const 关键字
let
和const
是 ES6 中引入的新的变量声明方式,与传统的var
相比,具有以下重要区别:
1.let
- 块级作用域:声明的变量具有块级作用域,只在其声明的代码块内有效,如函数体、循环体、条件语句块等。
{let x = 10;console.log(x); // 10}console.log(x); // 报错,x 未定义
- 不存在变量提升:在使用
let
声明变量时,变量不会被提升到其作用域的顶部,在变量声明之前访问该变量会抛出错误。
console.log(y); // 报错,y is not definedlet y = 20;
2.const
- 声明常量:用于声明常量,一旦赋值后就不能再被重新赋值,有助于确保某些值在程序的生命周期内保持不变,提高代码的可维护性和可读性。
const PI = 3.14;// PI = 3.14159; // 报错,不能重新赋值
- 块级作用域:与
let
一样,具有块级作用域。
{const MAX_VALUE = 100;console.log(MAX_VALUE); // 100}console.log(MAX_VALUE); // 报错,MAX_VALUE is not defined
- 并非完全不可变:当使用
const
声明一个对象或数组时,它指向的内存地址不能被改变,但对象或数组的内容是可以修改的。
const obj = { name: 'John' };obj.name = 'Jane'; // 可以修改对象的属性console.log(obj); // { name: 'Jane' }const arr = [1, 2, 3];arr.push(4); // 可以修改数组的内容console.log(arr); // [1, 2, 3, 4]
总之,let
和const
的引入使 JavaScript 的变量声明更加安全和可预测,避免了变量作用域不明确和变量提升带来的问题。在实际开发中,应根据具体情况选择使用let
或const
来声明变量或常量。
二、箭头函数
1.箭头函数是一种简洁的函数表达式语法。
基本语法:
param => expression
:当函数只有一个参数且函数体是一个表达式时使用。(param1, param2) => { statements }
:当有多个参数或函数体包含多条语句时使用。
const sum = (a, b) => a + b;const square = x => x * x;
特点:
- 没有自己的
this
、arguments
、super
或new.target
,继承了外层函数的这些值。 - 例如:
const obj = {numbers: [1, 2, 3],doubleNumbers: function() {return this.numbers.map(num => num * 2);}};console.log(obj.doubleNumbers(