@windchimes
2017-09-21T08:03:16.000000Z
字数 799
阅读 310
js
let const
es6支持暂时性死区
if (true) {// TDZ开始tmp = 'abc'; // ReferenceErrorconsole.log(tmp); // ReferenceErrorlet tmp; // TDZ结束console.log(tmp); // undefinedtmp = 123;console.log(tmp); // 123}
不支持变量提升
不允许在相同作用域内,重复声明同一个变量
块级作用域,并允许块作用域的任意嵌套
在块级作用域中,可以声明函数,此行为类似let,块级作用域之外不可引用
const是只读常量声明
解构赋值:
适用于var、let、const命令
es6内部使用严格相等运算符(===),在解构赋值中如果一个数组成员不严格等于undefined,默认值是不会生效的
var [x = 1] = [undefined];x // 1var [x = 1] = [null];x // null
解构赋值的规则是:等号右边不是对象的都先转换为对象,由于undefined和null无法转换为对象,所以它们都不能进行解构赋值
字符串扩展:
includes():返回布尔值,表示是否找到了参数字符串。
startsWith():返回布尔值,表示参数字符串是否在源字符串的头部。
endsWith():返回布尔值,表示参数字符串是否在源字符串的尾部
以上三个方法都支持第二个参数,表示开始搜索的位置;endsWith例外
let s = "hello world";s.endsWith('Hello', 5) // true
repeat方法返回新的字符串,表示将源字符串重复N次
Number.isFinite()和Number.isNaN()新方法只对数字有效,其他的一律返回false
全局的parseInt方法和parseFloat方法移植到了Number对象上面
Number.EPSILON是一个常量,其实质是一个可以接受的误差范围。