简介
let 和 const 是es6新增的命令,这两个命令和 var 一样,都是用来声明变量的。 如果想深入学习 es6 推荐去看 阮一峰的 ECMAScript 6 入门 , 阮一峰-ECMAScript 6 入门
let
let a = 10
console.log(a)
--------------------
console.log(a)
let a = 1
-------------------
if(true) {
let a = 1
}
console.log(a)
------------------
let a = 0
let a = 10
---------------
var a = 10
if(true) {
console.log(a)
let a = 10
}
const
const a = 10;
a = 1
console.log(a)
const a = {a: 10}
a.b = 2
a.a = 1
console.log(a)
---------------
const a = 10
console.log(a)
--------------------
console.log(a)
const a = 1
-------------------
if(true) {
const a = 1
}
console.log(a)
-----------------
const a = 0
const a = 10
------------------
var a = 10
if(true) {
console.log(a)
const a = 10
}
------------
const a
console.log(a)
总结
- let 与 const 没有变量提升
- let 与 const 有块级作用域
- let 与 const 不能重复声明
- let 与 const 有暂时性死区
- const 声明时,必须赋值
- const 声明之后,不能再重新赋值,但是如果声明的是对象或数组,那么可以修改对象的属性,也可以通过数组下标去修改数组下的某一项
|