1、屬性的簡潔表示法
es6 允許直接寫入變數和函式,作為物件的屬性和方法
//簡潔表示法 ---> 變數
let o=1;
let k=2;
let es5=;
let es6=;
console.log(es5,es6);
//
//簡潔表示法 ---> 函式
let es5_method=
};let es6_method=
};console.log(es5_method.hello(),es6_method.hello());
//hello hello
2、屬性名表示式
js 定義物件的屬性有兩種方法
//方法一 字面量
obj.foo = true;//
方法二 表示式
obj['a' + 'bc'] = 123;
es6 允許字面量定義物件時,用表示式作為物件的屬性名,即把表示式放在方括號內
let propkey = 'foo';let obj =;
console.log(obj);
//let a='b';
let es5_obj=;
let es6_obj=
console.log(es5_obj,es6_obj);
//
3、object.is()
object.is 方法用來比較兩個值是否嚴格相等,與嚴格比較運算子(===)的行為基本一致
object.is('foo', 'foo') //true
object.is({}, {})
//false
不同之處只有兩個:一是+0不等於-0,二是nan等於自身
+0 === -0 //true
nan === nan //
false
object.is(+0, -0) //
false
object.is(nan, nan) //
true
4、object.assign()
object.assign方法用於物件的合併,將源物件(source)的所有可列舉屬性,複製到目標物件(target)
object.assign方法的第乙個引數是目標物件,後面的引數都是源物件
var target = ;var source1 = ;
var source2 = ;
object.assign(target, source1, source2);
target
//
注意點:
(1)、如果目標物件與源物件有同名屬性,或多個源物件有同名屬性,則後面的屬性會覆蓋前面的屬性
var target = ;var source1 = ;
var source2 = ;
object.assign(target, source1, source2);
target
//
(2)、如果只有乙個引數,object.assign會直接返回該引數
var obj = ;object.assign(obj) === obj //
true
(3)、如果該引數不是物件,則會先轉成物件,然後返回
typeof object.assign(2) //"object"
(4)、由於undefined和null無法轉成物件,所以如果它們作為引數,就會報錯
object.assign(undefined) //報錯 cannot convert undefined or null to object
object.assign(null) //
報錯 cannot convert undefined or null to object
(5)、object.assign方法實行的是淺拷貝,而不是深拷貝。也就是說,如果源物件某個屬性的值是物件,那麼目標物件拷貝得到的是這個物件的引用
var obj1 = };var obj2 =object.assign({}, obj1);
obj2.a.b //1
var obj1 = };
var obj2 =object.assign({}, obj1);
obj1.a.b = 2;
obj2.a.b
//2
上面**中,源物件obj1的a屬性的值是乙個物件,object.assign拷貝得到的是這個物件的引用。這個物件的任何變化,都會反映到目標物件上面
物件的擴充套件
1.允許直接寫入變數和函式作為物件的屬性和方法。2.允許物件中只寫屬性名,不寫屬性值,屬性值就變數屬性名所代表的值。var date 2020 var o 定義物件的屬性名時,可以使用表示式,但必須放在方括號內。ps 屬性名表示式和簡潔表示式不能同時使用。let propkey foo let ob...
物件的擴充套件
1.物件的簡寫 const foo bar const baz baz 等同於const baz 2.簡寫法 列印物件 let user let foo console.log user,foo console.log foo console.log直接輸出user和foo兩個物件時,就是兩組鍵值對...
物件的擴充套件 02
解構賦值 物件的解構賦值,用於從乙個物件取值,相當於將所有可遍歷的,但尚未被讀取的屬性分配到指定物件上面。所有的鍵和它們的值都會複製到新物件上面 let x 1 y 2 z 由於解構賦值要求等號右邊是乙個物件,所以如果等號右邊是 undefined 或 null 就會報錯,因為他們無法轉為物件 le...