在 ES6 中,新增了两个关键字 let
和 const
,用于声明变量和常量。相比于传统的 var
关键字,它们有着更加严格的作用域规则和更加安全的特性,成为了前端开发中不可或缺的一部分。
let 关键字
let
关键字用于声明变量,可以理解为是 var
的加强版,它的作用域是块级作用域,也就是说在 {}
中声明的变量只在该块中有效。而在 for
循环中使用 let
声明的变量,在每次循环中都会重新声明和赋值,避免了传统的 var
声明变量在循环中出现的误用问题。示例如下:
for (let i = 0; i < 5; i++) { console.log(i); } console.log(i); // Uncaught ReferenceError: i is not defined
此外,let
声明的变量可以被重新赋值,但不允许重复声明。示例如下:
let x = 1; x = 2; // 可以重新赋值 let x = 3; // 报错:Identifier 'x' has already been declared
const 关键字
const
关键字用于声明常量,声明后不允许被重新赋值。与 let
一样,它的作用域也是块级作用域。const
声明的变量必须在声明时初始化,否则会报错。示例如下:
const PI = 3.14; PI = 3; // 报错:Assignment to constant variable. const x; // 报错:Missing initializer in const declaration
需要注意的是,const
声明的变量虽然不能被重新赋值,但是它所指向的对象或数组中的属性可以被修改。示例如下:
const person = { name: 'Tom', age: 18 }; person.name = 'Jerry'; // 可以修改属性 person = {}; // 报错:Assignment to constant variable.
总结
let
和 const
关键字是 ES6 中的重要新增特性,它们有着更加严格的作用域规则和更加安全的特性,能够有效避免传统的 var
关键字带来的问题。在实际开发中,我们应该合理使用它们,提高代码的可读性和可维护性。
参考资料
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65c6dbd4add4f0e0ff115ade