1.Object[key]
这一语法主要是为了创建对象时,能够用其他的变量作为属性值。
var str="name";
var obj={
[str]: 'jc',
num: 1
};
2.箭头函数
箭头函数其实就是其他语言中已有的lamda表达式,但它是可以在函数定义的时候就绑定其this,可以用于返回一个已经绑定this的函数。
var student={
name: 'jc',
createPrint: function(){
return ()=>console.log(this.name);
}
};
var blue=student.createPrint();
blue(); //jc
3.Array.prototype.find/findIndex方法
可以按条件搜索的方式来查找数组中第一个满足条件的元素。
var array=[2,3,4,5];
console.log(array.find(a=>a>=3)); //3
4.展开运算符
- 将数组或可迭代对象拆分为单个的参数:
//es5
var yuan=[3,4,5];
console.log(Math.min.apply(Math,yuan));
//es6
console.log(Math.min(...yuan));
- 将可迭代对象转化为数组:
var array=[...document.querySelectorAll('div')];
5.字符串模板语法
- 优雅地在字符串中插入变量
var red={x:1,y:2};
console.log(`I am ${red.x+red.y}`);
- 书写多行文本
console.log(`this is a
theme`);
6.函数默认参数
可以给函数设置默认参数,包括回调函数参数,可以以优雅的方式传入回调函数。
//es5
function curry1(callback){
if(typeof callback === 'function'){
callback();
}
}
//es6
function curry2(callback=function(){}){
callback();
}
7.对象解构赋值中的const
设置对象解构赋值为const,则每个新的变量都为const,不可以改变其值,如果为对象,则不可改变其引用,这一点要小心处理
const {num}=this.state;
num++; //error