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.正则的扩展
正则2.png5.数组的扩展
- 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)
网友评论