ES6

keyword: 具有块级作用域,规避变量提升现象,暂时性死区会报错,结构赋值, 扩展运算符, 类数组对象,
Array.from

1.基础规则

  • 规则,静态字符串用单引号,动态字符串用反引号
  • 参数为数组或者对象时,优先使用解构赋值
  • 对于不用改变值的变量,最好用const声明,
  • const { activity } = this.props;
  • 类数组对象也有length属性: let [length: len] = 'hello'; // 5
  • 基本数据类型都有tostring属性,甚至连字符串本身还有这个属性

1. 变量声明(六种)

var function let const import class
const实际上保证的并不是变量的值不得改动,而是变量指向的那个内存地址不改动。、

2. 变量的解构赋值

  • 变量的解构赋值,数组有序解构,对象则不用按顺序。
  • 不完全解构:let [x, y] = [1,2,3];
  • 解构失败: let [a, b] = [1]; b结构不成功
  • 解构允许指定默认值: 默认值只有在组员严格等于undefined时候才会生效;
注意es6的严格恒等于,undefined === null; //返回false
let [x=1] = [undefined]; // x = 1
let [x=1] = [null];// x=null
  • 对象的解构赋值: 变量必须与属性同名,才能取到正确值。 也可以为变量起别名
  • 字符串的结构赋值:字符串也可以结构赋值,是因为字符串被转换成一个类数组对象
  • 函数参数的解构赋值

3. 字符串的扩展

  • es6的at方法更胜于es5的charat方法
  • includes, startswith, endswith, repeat, padstart, padend,
  • 模板字符串,反引号

4.正则的扩展

ES6_第1张图片
正则2.png

5.数组的扩展

  • Array.from
  • Array.of
  • find
  • findIndex
  • indexOf
  • includes
  • 数组遍历,entries, keys, values, for of

6.对象的扩展

允许对象中只写属性名,不写属性值
object.assign()浅拷贝,

7.函数的扩展

函数参数可以指定默认值,并且该默认值是默认声明的,无需要let再次声明。
指定默认值的参数不参加函数的length计算

rest参数,用的时候是一个数组类型,并且必须做为最后一个参数。
函数的length参数不包括rest参数

箭头函数,返回的一个对象,
函数体内的this对象就是定义时所在的对象,而不是使用时。因为它没有this,所以不可以当构造函数。
不可以使用arguments对象,不可以使用yield命令

13.set结构 唯一去重,
new Set(),
size
操作方法:add,has,delete,clear,Array.from,
遍历方法:keys,values,entries,foreach
,扩展运算符,map,filter

14.proxy
两个参数目标对象target,配置对象handle
拦截
注意目标对象是对象和函数时的区别
Object.create
get set apply construct用于拦截new命令
Relect
promise对象,pending,fulfilled,rejected
new Promise(function(resolve,reject){})
promise.then(f1,f2)

你可能感兴趣的:(ES6)