let 和 const 关键字
-
我们以前都是使用
var关键字来声明变量的 -
在 ES6 的时候,多了两个关键字
let和const,也是用来声明变量的 -
只不过和 var 有一些区别
let和const不允许重复声明变量
// 使用 var 的时候重复声明变量是没问题的,只不过就是后面会把前面覆盖掉 var num = 100 var num = 200// 使用 let 重复声明变量的时候就会报错了 let num = 100 let num = 200 // 这里就会报错了// 使用 const 重复声明变量的时候就会报错 const num = 100 const num = 200 // 这里就会报错了-
let和const声明的变量不会在预解析的时候解析(也就是没有变量提升)// 因为预解析(变量提升)的原因,在前面是有这个变量的,只不过没有赋值 console.log(num) // undefined var num = 100// 因为 let 不会进行预解析(变量提升),所以直接报错了 console.log(num) // undefined let num = 100// 因为 const 不会进行预解析(变量提升),所以直接报错了 console.log(num) // undefined const num = 100 -
let和const声明的变量会被所有代码块限制作用范围// var 声明的变量只有函数能限制其作用域,其他的不能限制 if (true) { var num = 100 } console.log(num) // 100// let 声明的变量,除了函数可以限制,所有的代码块都可以限制其作用域(if/while/for/...) if (true) { let num = 100 console.log(num) // 100 } console.log(num) // 报错// const 声明的变量,除了函数可以限制,所有的代码块都可以限制其作用域(if/while/for/...) if (true) { const num = 100 console.log(num) // 100 } console.log(num) // 报错