喜迎
春节

啊书单读书笔记文章模板啊


这是博主的书单读书笔记板块,后续会更新文章,目前弄好了模板格式~

ES6标准入门-变量声明与解构赋值

柏林已经来了命令,阿尔萨斯和洛林的学校只许教 ES6 了…他转身朝着黑板,拿起一支粉笔,使出全身的力量,写了两个大字:“ES6 万岁!”(《最后一课》)。

阮一峰的《ES6 标准入门》第二版和第三版都有购入,第二版是去年买的实体书,当初大略翻了一遍,今年第三版又出世了,在原来的基础上新增了不少内容,是时候重拾书本学习了。

let 和 const

  • 基本用法
    let 和 const 声明变量的三大特性:不存在变量提升、暂时性死区、不允许重复声明。

  • 不存在变量提升
    let 声明的变量一定要在声明后使用,否则便会报错。

// var的情况
console.log(foo) // 输出 undefined
var foo = 2

// let的情况
console.log(bar) // 报错 ReferenceError
let bar = 2

暂时性死区

ES6 规定,如果区块中存在 let 和 const 命令,则这个区块对这些命令声明的变量从一开始就形成封闭作用域。这在语法上称为“暂时性死区”(temporal dead zone,简称 TDZ)。

var tmp = 123
if (true) {
  // TDZ 开始
  tmp = 'abc' // ReferenceError
  let tmp
  // TDZ 结束
  console.log(tmp) // undefined
}

“暂时性死区”也意味着 typeof 不再是一个百分之百安全的操作,变量用 let 声明的话,那么在声明之前引用会报错。作为比较,如果一个变量根本没有被声明,使用 typeof 反而不会报错。

typeof x // ReferenceError
let x

typeof undeclared_variable // "undefined"

总之,暂时性死区的本质就是,只要进入当前作用域,所要使用的变量就已经存在,但是不可获取,只有等到声明变量的那一行代码出现,才可以获取和使用该变量。


文章作者: NekoDeng
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 NekoDeng !
评论
 上一篇
JS对象
JS对象
对象类是对象的抽象,对象是类的实例。在js中一切皆为对象,如字符串、数字、数组等。在js中对象的本质:属性和方法的集合。 JS内置对象(10个) Object对象 是所有JavaScript对象的超类(基类) Array对象 数组对象—定义
2020-03-18
下一篇 
啊啊啊这是随笔文章模板
啊啊啊这是随笔文章模板
这是博主的随笔板块,后续会更新文章,目前弄好了模板格式~ 节选自《你若安好便是晴天》- 前言 几场梅雨,几卷荷风,江南已是烟水迷离。小院里湿润的青苔在雨中纯净生长。这个季节,许多人都在打听关于莲荷的消息,以及茉莉在黄昏浮动
2020-01-04
  目录