对象
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