首页 > 其他 > 详细

let 及const

时间:2019-02-21 11:40:27      阅读:157      评论:0      收藏:0      [点我收藏+]

ES5中的块级作用域

ES5中只有全局作用域和函数作用域,这样带来了很多的不便利,会出现内层变量被外层变量覆盖,循环体中的变量会暴露在全局,很多情况下需要自执行函数来私有化变量。

ES6块级的作用域

ES6中let为JavaScript提供了块级的作用域

  1. ES6 允许块级作用域的任意嵌套
  2. 外层作用域无法读取内层作用域的变量
  3. 外层代码块不受内层代码块的影响
  4. 内层作用域可以定义外层作用域的同名变量

虽然添加了块级的作用域但是变量仍然会按照作用域链进行查找

函数作用域和块级作用域

函数能不能在块级作用域之中声明?这是一个相当令人混淆的问题。

ES5中规定 函数只能顶层作用域和函数作用域中声明,但是实际上各个浏览器并没有按照这个规范来实行

ES6中规定块级作用域,并且明确的规定了函数可以在块级作用域中声明。

let 用法

  1. 不存在变量提升
  2. 暂时性死区: 只要块级作用域内存在let命令,它所声明的变量就“绑定”(binding)这个区域,不再受外部的影响
  3. 不允许重复声明

ES6 声明变量的方式有6种

ES5 只有两种声明变量的方法:var命令和function命令。ES6 除了添加let和const命令,后面章节还会提到,另外两种声明变量的方法:import命令和class命令。所以,ES6 一共有 6 种声明变量的方法。

let 及const

原文:https://www.cnblogs.com/Paul-Yellow/p/10411272.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!