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