const
es6 中的const和其他语言的常量很像,一经赋值不可改变。但是不同的是const不允许修改绑定但是可以修改值例如
const person = {
name:"Jay"
}
// 修改值是可以的
person.name = "tom"
// 但是修改绑定 会抛出错误
person = {
name : "tom"
}
let
es6 中的let和const与var 不同他没有被提升到变量作用域顶部,如果没声明就用会抛出错误,即便是安全的typeof 操作符也会触发也引用错误
// 因为 typeof vlaue 和 let声明的 value在一个作用域,value不会被变量提升,使用value会发生暂时性死区
// 报错
if(true){
console.log(typeof vlaue)
let vlaue = 'blue'
}
// 因为 typeof value 在 value 声明的作用域之外 所用这种情况不会报错 打印 undefined
console.log(typeof vlaue) //undefined
if(false){
let vlaue = 'blue'
}
网友评论