您的位置:首页 > 其它

ES6中的let、const命令

2020-02-06 21:00 78 查看

let只在当前声明区域有效

{
let a = 10;
var b = 1;
}
a // ReferenceError: a is not defined.
b // 1

a是局部变量,b是全局变量,a在外不生效

不存在变量提升

// var 的情况
console.log(foo); // 输出undefined
var foo = 2;

// let 的情况
console.log(bar); // 报错ReferenceError
let bar = 2;

var声明的变量会有变量提升的效果,即使未赋值还是会声明,let没有,在声明之前读取就会报错

暂时性死区

var tmp = 123;

if (true) {
tmp = 'abc'; // ReferenceError
let tmp;
}

如果在声明之前给变量赋值或者在之前查看变量的类型都会报错

不允许重复声明

function func(arg) {
let arg;
}
func() // 报错

function func(arg) {
{
let arg;
}
}
func() // 不报错

上图,函数参数已经声明"arg"的变量,函数里再次声明就会报错

有块级作用域

{{{{
let insane = 'Hello World';
{let insane = 'Hello World'}
}}}};

这样每个层级都会有一个作用域,并且互不影响,很方便我们定义各种变量

const

一般用来定义常量,定义后,常量的值不可改变,改变就会报错~所以一旦声明常量就得赋值,不然就会报错…
其他用法就和let是差不多的

PS:参考阮老师的书做出的整理

  • 点赞 6
  • 收藏
  • 分享
  • 文章举报
isDreamer 发布了6 篇原创文章 · 获赞 19 · 访问量 150 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: