let 和 const 是es6新增的命令,这两个命令和 var 一样,都是用来声明变量的。
如果想深入学习 es6 推荐去看 阮一峰的 ECMAScript 6 入门
, 阮一峰-ECMAScript 6 入门
let a = 10 console.log(a) // 10 -------------------- console.log(a) // 报错 // let 没有变量提升 let a = 1 ------------------- if(true) { let a = 1 } console.log(a) // 报错 a is not defined // let 有块级作用域 ------------------ let a = 0 let a = 10 // console.log(a) // 报错 // let 不允许重复声明 --------------- var a = 10 if(true) { console.log(a) // 报错 // let 有暂时性死区 let a = 10 }
const a = 10; a = 1 console.log(a) // 报错 // const 是用来定义常量的 定义之后不能重新赋值 // 但是 如果 const 定义的是一个对象,那么可以修改对象下的属性 const a = {a: 10} a.b = 2 a.a = 1 console.log(a) // {a: 1, b: 2} --------------- const a = 10 console.log(a) // 10 -------------------- console.log(a) // 报错 // const 没有变量提升 const a = 1 ------------------- if(true) { const a = 1 } console.log(a) // 报错 a is not defined // const 有块级作用域 ----------------- const a = 0 const a = 10 // console.log(a) // 报错 // const 不允许重复声明 ------------------ var a = 10 if(true) { console.log(a) // 报错 // const 有暂时性死区 const a = 10 } ------------ const a console.log(a) // 报错 // const 声明时,必须赋值