ES6允许直接写入变量和函数。
var o ={
method(){
return "hello";
},
name:'hshsh'
}
//等同于下面
var o ={
method:function(){
return "hello";
},
name:'hshsh'
}
属性名表达式
javaSript语言定义对象的属性有两种方法。
// 1
obj.foo = true;
// 2
obj['a'+'bc'] = 123;
let obj = {
['propKey']:true,
['a'+'bc']:123
};//
let obj = {
['h'+"ello"] (){
return 'hi';
}
}
console.log(obj.hello());//hi
方法的name属性
函数的name属性,返回函数名。ES6为对象方法也添加了name属性。
var person = {
sayName: function() {
console.log(this.name);
},
get firstName() {
return "Nicholas"
}
}
persion.sayName.name //sayName
persion.firstName.name // get firstName
Object.is()
用来比较两个值是否严格相等。他与严格相等(===)的行为基本一致,不同之处只有两个:
- +0不能等于-0
- NaN等于自身
+0 === -0 //true NaN === NaN //false Object.is(+0,-0)//false Object.is(NaN,NaN)//true
扩展运算符
function push(array, ...items) {
array.push(...items);
}
function add(x, y) {
return x + y;
}
add(...[1,2]); //3