ES6 物件的新增方法

2021-09-10 17:22:28 字數 1061 閱讀 4112

object.assign

object.assign方法用於物件的合併,將源物件(source)的所有可列舉屬性,複製到目標物件(target)。

const target = ;

const source1 = ;

const source2 = ;

object.assign(target, source1, source2);

target //

注意,如果目標物件與源物件有同名屬性,或多個源物件有同名屬性,則後面的屬性會覆蓋前面的屬性。

object.assign方法實行的是淺拷貝,而不是深拷貝。也就是說,如果源物件某個屬性的值是物件,那麼目標物件拷貝得到的是這個物件的引用。

const obj1 = };

const obj2 = object.assign({}, obj1);

obj1.a.b = 2;

obj2.a.b // 2

object.keys()

es5 引入了object.keys方法,返回乙個陣列,成員是引數物件自身的(不含繼承的)所有可遍歷(enumerable)屬性的鍵名。

var obj = ;

object.keys(obj)

// ["foo", "baz"]

es2017 引入了跟object.keys配套的object.valuesobject.entries,作為遍歷乙個物件的補充手段,供for...of迴圈使用。

let  = object;

let obj = ;

for (let key of keys(obj))

for (let value of values(obj))

for (let [key, value] of entries(obj))

ES6物件的新增方法

es5 比較兩個值是否相等,只有兩個運算子 相等運算子 和嚴格相等運算子 它們都有缺點,前者會自動轉換資料型別,後者的nan不等於自身,以及 0等於 0。j ascript 缺乏一種運算,在所有環境中,只要兩個值是一樣的,它們就應該相等。es6 提出 same value equality 同值相等...

ES6 物件的新增方法(常用)

1 object.is 它用來比較兩個值是否嚴格相等,與嚴格比較運算子 的行為基本一致。let obj11 let obj12 let r11 object.is obj11,obj12 console.log r11 r11 false let r12 object.is obj11,obj11 ...

es6物件遍歷方法

for in迴圈遍歷物件自身的和繼承的可列舉屬性 不含 symbol 屬性 object.keys返回乙個陣列,包括物件自身的 不含繼承的 所有可列舉屬性 不含 symbol 屬性 的鍵名。object.getownpropertynames返回乙個陣列,包含物件自身的所有屬性 不含 symbol ...