[关闭]
@windchimes 2017-09-21T08:03:16.000000Z 字数 799 阅读 310

es6

js


let const

es6支持暂时性死区
  1. if (true) {
  2. // TDZ开始
  3. tmp = 'abc'; // ReferenceError
  4. console.log(tmp); // ReferenceError
  5. let tmp; // TDZ结束
  6. console.log(tmp); // undefined
  7. tmp = 123;
  8. console.log(tmp); // 123
  9. }
不支持变量提升
不允许在相同作用域内,重复声明同一个变量
块级作用域,并允许块作用域的任意嵌套
在块级作用域中,可以声明函数,此行为类似let,块级作用域之外不可引用

const是只读常量声明

解构赋值:

适用于var、let、const命令
es6内部使用严格相等运算符(===),在解构赋值中如果一个数组成员不严格等于undefined,默认值是不会生效的
  1. var [x = 1] = [undefined];
  2. x // 1
  3. var [x = 1] = [null];
  4. x // null
解构赋值的规则是:等号右边不是对象的都先转换为对象,由于undefined和null无法转换为对象,所以它们都不能进行解构赋值

字符串扩展:

includes():返回布尔值,表示是否找到了参数字符串。
startsWith():返回布尔值,表示参数字符串是否在源字符串的头部。
endsWith():返回布尔值,表示参数字符串是否在源字符串的尾部

以上三个方法都支持第二个参数,表示开始搜索的位置;endsWith例外

  1. let s = "hello world";
  2. s.endsWith('Hello', 5) // true
repeat方法返回新的字符串,表示将源字符串重复N次
Number.isFinite()和Number.isNaN()新方法只对数字有效,其他的一律返回false
全局的parseInt方法和parseFloat方法移植到了Number对象上面
Number.EPSILON是一个常量,其实质是一个可以接受的误差范围。
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注