ES2015(ES6) 新增加了两个重要的 JavaScript 关键字: let 和 const。
let 声明的变量只在 let 命令所在的代码块内有效。const 声明一个只读的常量,一旦声明,常量的值就不能改变。
一、使用 var 关键字声明的变量不具备块级作用域的特性,它在 {} 外依然能被访问到。
{ var x = 2; } // 这里可以使用 x 变量
二、let 声明的变量只在 let 命令所在的代码块 {} 内有效,在 {} 之外不能访问
{ let x = 2; } // 这里不能使用 x 变量
三、在块中重新声明变量也会重新声明块外的变量:
var x = 10; // 这里输出 x 为 10 { var x = 2; // 这里输出 x 为 2 } // 这里输出 x 为 2
四、let 关键字就可以解决这个问题,因为它只在 let 命令所在的代码块 {} 内有效。
var x = 10; // 这里输出 x 为 10 { let x = 2; // 这里输出 x 为 2 } // 这里输出 x 为 10
五、更多let
let i = 5; for (let i = 0; i < 10; i++) { // 一些代码... } // 这里输出 i 为 5
六、const 用于声明一个或多个常量,声明时必须进行初始化,且初始化后值不可再修改
const PI = 3.141592653589793; PI = 3.14; // 报错 PI = PI + 10; // 报错
七、const
定义常量与使用let
定义的变量相似,二者都是块级作用域
var x = 10; // 这里输出 x 为 10 { const x = 2; // 这里输出 x 为 2 } // 这里输出 x 为 10
八、const 的本质: const 定义的变量并非常量,并非不可变,它定义了一个常量引用一个值
// 创建常量对象 const car = {type:"Fiat", model:"500", color:"white"}; // 修改属性: car.color = "red"; // 添加属性 car.owner = "Johnson";
本文参考:
https://www.runoob.com/js/js-let-const.html