es6总结

1.let块级作用域(出现原因:内部变量会覆盖外部变量,内部变量会泄露为外部变量)

  1.     在for循环中,设置循环变量和循环体内部变量是不同的作用域;
  2.     不存在变量提升,如果使用变量,而变量是在使用之后声明的,将会报错;
  3.     锁定块级域,在外部有定义全局变量,在块级域中定义变量,外部的全局变量不会被引用,并且在内部使用在定义之前会报错;
  4.     在同一个块级域中不允许重复声明同一个变量;
  5.     可在块级域中任意嵌套;
  6.     在写插件时使用的(function(){}())方式,不在必须,let可以锁定当前域;
  7.     如果想要获取块级域中的值,使用关键字do;

2.const定义不可改变的常量

  1. 只可以声明的块级域中,声明必须初始化;
  2. 在同一个块级域中不允许重复声明同一个变量名;
  3. const定义只是指向常量的指针不变,如果是对象或数组,并不能保证内容不变,可以在对象中添加属性,数组中push,但不可把当前的变量指向另一个常量;
  4. 固定一个对象请使用Object.freeze({});,冻结一个对象;

3.定义变量的解构赋值

  1. 当定义多个变量时,可以使用新方式:let [a,b,c]  = [1,2,3];其数组中可以嵌套多种类型,"..."为剩下所有;
  2. 默认值,当值必须是undefined时,默认值才有效;默认值可以引用解构赋值的其他变量,但该变量必须已经声明;
  3. 对象的解构赋值,必须同名,可以用“:”的方式赋值给其他变量,但本身不会被赋值 let {foo:baz} = {foo:"aaa",bar:"bbb"},baz为aaa,foo为undefined
  4. 字符串的解构赋值;
  5. 数值和布尔型的解构赋值;
  6. 函数参数的解构赋值;

4.字符串的扩展

  1. 字符串遍历:for...of...
  2. includes():返回布尔值,表示是否找到了参数字符串。支持第二个参数;
  3. startsWith():返回布尔值,表示参数字符串是否在源字符串的头部。支持第二个参数;
  4. endsWith():返回布尔值,表示参数字符串是否在源字符串的尾部。支持第二个参数;
  5. repeat方法返回一个新字符串,表示将原字符串重复n次。
  6. padStart、padEnd字符串补全,如果原字符串大于设置的长度,则返回原字符串;padStart的常见用途是为数值补全指定位数:"1".padStart(10,'0');//"000000001";
  7. 模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量,用${变量}标识。
  8. 标签模板其实不是模板,而是函数调用的一种特殊形式。“标签”指的就是函数,紧跟在后面的模板字符串就是它的参数。“标签模板”的一个重要应用,就是过滤HTML字符串,防止用户输入恶意内容。
  9. String.raw方法,往往用来充当模板字符串的处理函数,返回一个斜杠都被转义(即斜杠前面再加一个斜杠)的字符串,对应于替换变量后的模板字符串。

5.正则表达式的扩展

posted @ 2018-01-09 14:26  一只特立独行的马  Views(141)  Comments(0Edit  收藏  举报