文章目錄
Object.is()
這個方法是爲了彌補==
與===
的問題的。
- ==的問題。會自動轉換數據類型
- ===的問題。NaN不等於自身,以及+0等於-0
es6提出了“Same-value equality”(同值相等)算法。
+0 === -0 //true
NaN === NaN // false
Object.is(+0, -0) // false
Object.is(NaN, NaN) // true
Object.assign()
Object.assign
方法用於對象的合併,將源對象(source)的所有可枚舉屬性,複製到目標對象(target)。
注意,如果目標對象與源對象有同名屬性,或多個源對象有同名屬性,則後面的屬性會覆蓋前面的屬性。
const target = { a: 1, b: 1 };
const source1 = { b: 2, c: 2 };
const source2 = { c: 3 };
Object.assign(target, source1, source2);
target // {a:1, b:2, c:3}
❗️
- Object.assign方法實行的是淺拷貝,而不是深拷貝
- 如果目標對象與源對象有同名屬性,或多個源對象有同名屬性
Object.getOwnPropertyDescriptors()
返回指定對象所有自身屬性(非繼承屬性)的描述對象。
__proto__屬性,Object.setPrototypeOf(),Object.getPrototypeOf()
__proto__內置屬性用來獲取對象的原型對象。setPrototypeOf用來設置對象的原型對象,getPrototypeOf用來獲取對象的原型對象。
Object.keys(),Object.values(),Object.entries()
- Object.keys方法,返回一個數組,成員是參數對象自身的(不含繼承的)所有可遍歷(enumerable)屬性的鍵名
- Object.values方法返回一個數組,成員是參數對象自身的(不含繼承的)所有可遍歷(enumerable)屬性的值
- Object.entries()方法返回一個數組,成員是參數對象自身的(不含繼承的)所有可遍歷(enumerable)屬性的鍵值對數組
Object.fromEntries()
Object.fromEntries()方法是Object.entries()的逆操作,用於將一個鍵值對數組轉爲對象。