ES6 let与const

let与const

let
  1. 暂时性死区

ES6 明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。语法上成为暂时性死区。

  1. typeof运算符是百分之百安全的设定不再成立。

typeof a; // ReferenceError
let a;

  1. 不允许重复声明变量。
  2. 出现块级作用域的概念。

块: { }
ES6 引入了块级作用域,明确允许在块级作用域之中声明函数。ES6 规定,块级作用域之中,函数声明语句的行为类似于let,在块级作用域之外不可引用。

  1. ES6 的块级作用域必须有大括号,如果没有大括号,JavaScript 引擎就认为不存在块级作用域。let只能出现在当前作用域的顶层,函数也是如此。
let flag = false;
if(flag)  let b = 2; // 报错
// 正确
if (flag) {
    let b = 2;
}
const
  1. const声明一个只读的常量。一旦声明,常量的值就不能改变。
  2. 块级作用域内有效。
  3. 存在暂时性死区,作用域不可提升。
  4. const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。(特别注意)
ES6中声明变量的六种方式

var[es5],function[es5],let,const,import,class

顶层对象
  1. 浏览器环境指的是window,node环境指的是global。
  2. ES6 开始,全局变量将逐步与顶层对象的属性脱钩。
  3. ES2020 在语言标准的层面,引入globalThis作为顶层对象。也就是说,任何环境下,globalThis都是存在的,都可以从它拿到顶层对象,指向全局环境下的this。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w͏l͏j͏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值