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
- 收藏
- 分享
- 文章举报
相关文章推荐
- ES6 之 let和const命令 Symbol Promise对象
- ES6 之 let和const命令
- let和const命令 — 学习ES6(一)
- ES6入门之let和const命令
- 【ES6学习】— (1)ES6简介、let与const命令以及变量的解构赋值
- ES6入门教程之let和const命令详解
- ES6(一) let和const命令
- ES6 学习 let和const命令
- js变量中有var定义和无var定义的区别,es6中let命令和const命令
- ES6 let和const命令
- 对ES6中let与const命令初步了解
- ES6 之 let 和 const 命令
- ES6--let和const命令
- es6 let 和 const 命令
- ES6(01 基础 let和const命令)
- ES6学习-let和const命令
- ES6 入门系列 - let 和 const 命令
- ES6入门之let 和 const 命令
- ES6的let和const命令(一)
- [置顶] ES6--let和const命令