js -- let const

1. let 有块级作用域,var 没有

2. var命令会发生“变量提升”现象,即变量可以在声明之前使用,值为undefined,但let不会,会报错.

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

4. let不允许在相同作用域内,重复声明同一个变量。const声明的常量,也与let一样不可重复声明

5. 考虑到环境导致的行为差异太大,应该避免在块级作用域内声明函数。如果确实需要,也应该写成函数表达式,而不是函数声明语句。

6. const声明一个只读的常量。一旦声明,常量的值就不能改变。const一旦声明变量,就必须立即初始化,不能留到以后赋值。

6.const的作用域与let命令相同:只在声明所在的块级作用域内有效。

7. let命令、const命令、class命令声明的全局变量,不属于顶层对象的属性。也就是说,从 ES6 开始,全局变量将逐步与顶层对象的属性脱钩。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • JS块级作用域 1.使用 var 关键字声明的变量不具备块级作用域的特性,它在 {} 外依然能被访问到 2.使用 ...
    诚恳_9aba阅读 461评论 0赞 1
  • 1. 块级作用域和变量提升 被{}包裹的语句,就是代码块,可以被执行。先看一个和代码块相关的题目: 第一个算式里面...
    Lawson刘阅读 476评论 0赞 0
  • 4. 如何在ES5环境下实现let 这个问题实质上是在回答let和var有什么区别,对于这个问题,我们可以直接查看...
    林不羁吖阅读 458评论 0赞 0
  • ES6基本语法之let和const 1、 let与const 常量const [常量声明的时候要赋值;常量是不能被...
    a4581c9fe4af阅读 804评论 0赞 0
  • 第一章 let与const 1.ECMAScript 6.0的简称 ES6 2.ECMAScript 和 Java...
    滨赫阅读 264评论 0赞 0

友情链接更多精彩内容