ES6 语法学习之let、var、const

let 、var 、 const

使用方法

块级作用域

{{{{
  {let test = 'Hello World'}
  console.log(test); // 报错  拿不到子作用域的变量
}}}};

Eg3:for (let i = 0; i < 3; i++) {
  let i = 'abc';
  console.log(i);
}

此处的let是一个单独的作用域,因此结果是 abc 输出了三次,每次迭代循环时都创建一个新变量,并以之前迭代中同名变量的值将其初始化,此时的let作用类似于闭包。

不存在变量提升

变量提升的现象:在同一作用域下,变量可以在声明之前使用,值为 undefined,(ES5时 var 会出现变量提升,ES6 使用直接console一个未声明的值会报错Uncaught ReferenceError: xxxxxx is not defined)

暂时性死区

不允许重复声明变量

let、const声明的全局变量不会挂在顶层对象下面

var value = 535;
console.log(window.value); // 535

let value = 535;
console.log(window.value); // undefined

总结

kkdemian
hyperliquid