块级作用域,let,const。(1.js)
1. let 1. let 声明的全局变量不是全局对象window的属性 2. 同一作用域中用let定义变量不允许重复声明 3. let声明的变量不存在变量提升 4. let声明的变量具有暂时性死区 5. let 声明的变量拥有块级作用域 2. const 1. const定义的是常亮,不可修改。 2. const 实际上保证的并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。</font> 复制代码
小Tips:
let和const声明的顶层变量并不会挂载在window上,而var会。
// let声明的变量并不会挂载在window下
// let test = 3
// 而var会
var test = 6
let a = {
test: 1,
getTest() {
return this.test
},
getArrowTest: () => {
return this.test
}
}
console.log(a.getTest(), 'getTest')
// var声明test会打印6 let声明test会打印undefined
console.log(a.getArrowTest(), 'getTest')
复制代码