对象

2021-03-03  本文已影响0人  转移到CSDN名字丹丹的小跟班

属性的简洁表示法

let name = 'ff'
let age = 20
let obj = {name, age}
console.log(obj)   //{name: "ff", age: 20}

方法名简写

let fun = function() {}
//等于
function fun () {}

属性名表达式
ES6允许用表达式作为属性名,但是一定要将表达式放在方括号内。

const obj = {
 ["he"+"llo"](){
   return "Hi";
  }
}
obj.hello();  //"Hi"

注意点:属性的简洁表示法和属性名表达式不能同时使用,否则会报错。

对象的拓展运算符
拓展运算符(...)用于取出参数对象所有可遍历属性然后拷贝到当前对象。

自定义的属性和拓展运算符对象里面属性的相同的时候:后面的属性会覆盖前面的

对象新方法
Object.assign()
用于将源对象的所有可枚举属性复制到目标对象中。

也就是说,对于Object.assign()而言,如果对象的属性值为简单类型(string,number),通过Object.assign({},srcobj);得到的新对象为深拷贝;如果属性值为对象或其他引用类型,那对于这个对象而言其实是浅拷贝的,这是Object.assign()特别需要注意的地方。

Object.is(value1, value2)
用来比较两个值是否严格相等,与(===)基本类似。

与===的区别:

//一是+0不等于-0
Object.is(+0,-0);  //false
+0 === -0  //true
//二是NaN等于本身
Object.is(NaN,NaN); //true
NaN === NaN  //false
上一篇下一篇

猜你喜欢

热点阅读