1. ES6

    现在 Js 版本更新的速度真的是要开车来追了。阮一峰老师的 ES6 教程也看了一小半,新的语法确实好用,不过普通项目要用还要配上 Babel 这些个全家桶,未免“太劳民伤财”,像 Vue 中直接有 webpack 能帮你搞定也还算是降低门槛了… 还是觉得只有自己记录过的东西才算是有印象了,看过的也就是过眼云烟,过几天就忘,自己记录的还是更靠谱。 let vs var vs const let 不存在变量提升并且有块级作用域的概念。 暂时性死区—-ES6明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。 之前 typeof 永不报错的情况将失效了。 const声明一个只读的常量。一旦声明,常量的值就不能改变。一旦声明变量,就必须立即初始化。 const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址不得改动。所以对于简单类型的数据(数值、字符串、布尔值),值就保存在变量指向的那个内存地址,因此等同于常量。而引用类型的,里面的属性是可以进行改变的。 let命令、const命令、class命令声明的全局变量,不属于顶层对象的属性。 var tmp = 123; if (true) { tmp = ‘abc’; // ReferenceError let tmp; } 解构 解构不成功,变量的值就等于undefined。 对于数组解构是按照排列顺序,而对象则是要写明属性名称,并且同名。 字符串扩展 这一章除了修复字符识别的bug之外,有用的 API 还有 include(查看字符串中是否包含某个单词) padStart() padEnd()…