前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ES 6 学习笔记 -let与var的区别

ES 6 学习笔记 -let与var的区别

作者头像
破晓之翼
发布2022-12-01 08:09:14
2400
发布2022-12-01 08:09:14
举报
文章被收录于专栏:产品能力

在Javascript 中我们常用var 来定义变量。

在ES6中新增了let,let的三个新特性,

1. 块级作用域

2. 暂时性死区

3. 不允许在一个封闭作用域,声明同一个变量。

1.块级作用域

ES6​新增了​let​命令,用来​声明变量​。它的用法类似于​var​,但是所声明的变量,只在​let​命令所在的代码块内有效

代码语言:javascript
复制
{
     let a=222222;
     var b=333333;
}
a // ReferenceError: a is not defined.b // 333333

以上代码在代码块之中,分别用​let​和​var​声明了两个变量。

然后,在代码块之外调用这两个变量。结果​let​声明的变量​报错​,​var​声明的变量返回了​正确的值​。这表明,​let​声明的​变量​只在​它所在的代码块有效​。

2.let 暂时性死区

代码语言:javascript
复制
var num=111;
if(true){
    num = "good";  // ReferenceError
    let num=222;   //块级作用域内let又声明了一个局部变量num,导致后者绑定这个块级作用域
}

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

总之,在代码块内使用​let​命令声明变量之前,该变量都是不可用的。

这在语法上,称为“​暂时性死区”​(temporal dead zone,简称 TDZ)

3.let​不允许在相同作用域内,​重复声明​同一个​变量​。

代码语言:javascript
复制
let num=111;
let num=222;  // 报错内容:Identifier 'num' has already been declared

但是var 不存在以上的问题, 

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 在Javascript 中我们常用var 来定义变量。
  • 1.块级作用域
  • 2.let 暂时性死区
  • 3.let​不允许在相同作用域内,​重复声明​同一个​变量​。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档