ES6学习笔记1--块级绑定

  |  

前言

身为JavaScript的语法核心ECMAScript的第六版更新了很多关键的关键字和语法。这一部分我们来学习的是ES6中的块级绑定


2



块级声明

块级声明也就是让所声明的变量在指定块的作用域外无法被访问。块级作用域(又被称为词法作用域)在如下情况下被创建:

  • 在一个函数内部
  • 在一个代码块(由一对花括号包裹)内部

let声明:

let声明会将变量的作用域限制在当前代码块中,且不会进行声明提升。

常量声明:

ES6使用const进行常量声明,声明后值无法改变。

常量声明也是块级声明,且不会提升。

无论是在严格还是非严格模式下,对常量进行赋值都会报错。

使用const声明对象:

const声明会阻止对于变量绑定与变量自身值的修改,但是不会阻止对变量成员的修改。

暂时性死区:

使用let或const声明的变量,在达到声明处之前都是无法访问的,若试图在定义位置之前使用它,无论如何都不能避免暂时性死区的问题。

循环内的常量声明:

ES6规范没有明确禁止在循环中使用const声明,然而它会根据循环方式的不同而有不同的行为。在for循环中,可以在初始化时使用const,但循环会在试图改变该便来给你的值时抛出错误。

但是const在for-in或者for-of循环中使用,与let变量效果相同。因为每次循环为迭代创建了一个新的变量绑定,而不是去试图修改已绑定的变量的值。

全局块级绑定:

当在全局作用域上使用var时,他会创建一个新的全局变量,并成为全局对象的一个属性。这意味着使用var可能无意间覆盖一个已有的全局属性。

而使用let或const,虽然在全局作用域上会创建新的绑定,但不会有任何属性被添加到全局对象上,并不会出现覆盖,只会出现全局属性的屏蔽。

文章目录
  1. 1. 块级声明