ECMAScript6 笔记(一):声明变量

  • A+
所属分类:前端

let

let 命令用来声明具有 块级作用域 的变量。通常,我们把包含在 {} 内的代码就称为一个代码块。

暂时性死区(TDZ)

暂时性死区(TDZ, temporal dead zone) 主要是为了减少运行时错误,防止在变量声明前就使用这个变量,从而导致意料之外的行为。这样的错误在 ES5 是很常见的,现在有了这种规定,避免此类错误就很容易了。

c 语言中并不会存在暂时性死区的问题,原因是 c 语言中不同作用域中声明的变量所分配的地址不同。

不允许重复声明

let 命令不允许在相同作用域内声明同名变量,c 语言中也是如此。

不存在变量提升

ES6 中规定在暂时性死区中和用 let、const 所声明的变量存在 变量提升

const

const 声明一个只读常量,一旦声明,值就不允许被修改。所以,我们在使用 const 命令进行变量的时候就需要立即对该变量进行初始化,否则会报错:Uncaught SyntaxError: Missing initializer in const declaration

const 命令声明的常量也不提升,同样存在暂时性死区,变量只能在声明之后使用。

不能变的是地址指向,而不是值

const 实质上并不保证所声明变量的值不能改变,不能被改变的是该变量的地址所存储的值。

ES6 中的块级作用域

ES6 中的 letconstJavaScript 提供了块级作用域。块级作用域的出现使得 IIFE 写法不再必要:

ES6 声明变量的六种方法

ES5 只有两种声明变量的方法:var 命令和 function 命令。ES6 除了添加 letconst 命令,还有另外两种声明变量的方法:import 命令和 class 命令。所以,ES6 一共有 6 种声明变量的方法。

参考文献

ECMAScript6 入门,阮一峰

ultravires

发表评论

您必须才能发表评论!