day24
解构
ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构,解构的本质属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。如果解构不成功,变量的值就等于undefined。
- 重命名
使用冒号,可以对解构的变量进行重命名
var a = {
name:'zhangsan',
age:10
};
var {name:myName, age:myAge} = a;
console.log(myName, myAge);
- 默认值
使用等号,可以对于undefined的结果赋值
var a = {
name:'zhangsan',
};
var {name, age = 10} = a;
console.log(name, age)
- 利用解构可以实现数据交换
var a = 1;
var b = 2;
var [a, b] = [b, a];
console.log(a, b);
箭头函数
内部不使用arguments保存实际参数,内部本身无this,this指向声明箭头函数外部作用域的this
let arrow = (...args) => {
console.log('参数列表:',args, args instanceof Array)
}
arrow(1,2,3) // 参数列表;[1,2,3] true
对象API扩展
ES6中对于Object的拓展主要是静态方法的拓展。
- 静态方法
Object.is(+0, -0)//false
console.log(+0 === -0)//true
Object.is(NaN, NaN)//true
console.log(NaN === NaN)//false