1.允許直接寫入變數和函式作為物件的屬性和方法。
2.允許物件中只寫屬性名,不寫屬性值,屬性值就變數屬性名所代表的值。
var date =
'2020'
;var o =
};
定義物件的屬性名時,可以使用表示式,但必須放在方括號內。
ps:屬性名表示式和簡潔表示式不能同時使用。
let propkey =
'foo'
;let obj =
;
物件的方法也有name屬性,可以返回方法名。
const person =,}
;perso.sayname.name;
//'sayname'
比較兩個值是否嚴格相等,與嚴格相等運算子(===)作用基本一致 ,但有不同。
條件結果
+0 === -0
true
object.is(+0, -0)
false
nan === nan
false
object.is(nan,nan)
true
物件的每乙個屬性都有乙個描述物件,用object.getownpropertydescriptor()方法可以檢視某個屬性的描述物件。
let obj =
object.
getownpropertydescriptor
(obj,
'foo');
//
描述物件的enumerable屬性稱為「可列舉型」。如果值為false,就表示某些操作會忽略當前屬性。
把乙個物件的所有可列舉屬性複製到另乙個物件。
object.assign(target,…source);第乙個引數是目標物件,後面的引數都是源物件。
值得注意的幾個點:
var terget =};
var source =};
var dd =object.
assign
(terget,source)
;//}
dd.a.b;
//'hello'
物件的屬性的遍歷方法。
設定乙個物件的prototype物件。
let proto =
;let obj =
;object.
setprototypeof
(obj,proto)
;proto.y =20;
proto.z =40;
obj.x;
//10
obj.y;
//20
obj.z;
//40
讀取乙個物件的prototype物件。
引數必須是乙個物件,以陣列的形式返回。
名稱返回值
object.keys()
鍵名object.values()
鍵值object.entries()
鍵值對物件的擴充套件運算子用來取出引數物件的所有可遍歷屬性。
let z =
;let n =;n;
//
物件的解構賦值不會複製從原型物件繼承的屬性和方法。
如果使用者自定義的屬性放在擴充套件運算子後面,則擴充套件運算子內部的同名屬性會被覆蓋。
let x =1;
let y =2;
let a =
;let o =;o;
//
返回物件的所有屬性的描述物件。返回乙個物件的形式。
const obj =};
object.
getownpropertydescriptors
(obj);//
// bar :
//
//}
(?.)判斷某個物件是否存在。
null傳導運算子的4種用法:
物件的擴充套件
1 屬性的簡潔表示法 es6 允許直接寫入變數和函式,作為物件的屬性和方法 簡潔表示法 變數 let o 1 let k 2 let es5 let es6 console.log es5,es6 簡潔表示法 函式 let es5 method let es6 method console.log ...
物件的擴充套件
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...