ES6中物件新增了哪些擴充套件

2022-06-05 13:54:12 字數 3413 閱讀 4407

es6中,當物件鍵名與對應值名相等的時候,可以進行簡寫

const baz = 

// 等同於

const baz = 

方法也能夠進行簡寫

const o = 

};// 等同於

const o = 

}

在函式內作為返回值,也會變得方便很多

function getpoint() ;

}getpoint()

// 

const obj = 

};new obj.f() // 報錯

es6 允許字面量定義物件時,將表示式放在括號內

let lastword = 'last word';

const a = ;

a['first word'] // "hello"

a[lastword] // "world"

a['last word'] // "world"

表示式還可以用於定義方法名

let obj = 

};obj.hello() // hi

注意,屬性名表示式與簡潔表示法,不能同時使用,會報錯

// 報錯

const foo = 'bar';

const bar = 'abc';

const baz = ;

// 正確

const foo = 'bar';

const baz = ;

注意,屬性名表示式如果是乙個物件,預設情況下會自動將物件轉為字串[object object]

const keya = ;

const keyb = ;

const myobject = ;

myobject // object 

this關鍵字總是指向函式所在的當前物件,es6 又新增了另乙個類似的關鍵字super,指向當前物件的原型物件

const proto = ;

const obj = 

};object.setprototypeof(obj, proto); // 為obj設定原型物件

obj.find() // "hello"

在解構賦值中,未被讀取的可遍歷的屬性,分配到指定的物件上面

let  = ;

x // 1

y // 2

z // 

解構賦值是淺拷貝

let obj =  };

let  = obj;

obj.a.b = 2; // 修改obj裡面a屬性中鍵值

x.a.b // 2,影響到了結構出來x的值

物件的擴充套件運算子等同於使用object.assign()方法

es6 一共有 5 種方法可以遍歷物件的屬性。

reflect.ownkeys()

// ['2', '10', 'b', 'a', symbol()]

嚴格判斷兩個值是否相等,與嚴格比較運算子(===)的行為基本一致,不同之處只有兩個:一是+0不等於-0,二是nan等於自身

+0 === -0 //true

nan === nan // false

object.is(+0, -0) // false

object.is(nan, nan) // true

object.assign()方法用於物件的合併,將源物件source的所有可列舉屬性,複製到目標物件targetobject.assign()方法的第乙個引數是目標物件,後面的引數都是源物件

const target = ;

const source1 = ;

const source2 = ;

object.assign(target, source1, source2);

target // 

返回指定物件所有自身屬性(非繼承屬性)的描述物件

const obj = 

};object.getownpropertydescriptors(obj)

// ,

//   bar:

//     }

object.setprototypeof方法用來設定乙個物件的原型物件

object.setprototypeof(object, prototype)

// 用法

const o = object.setprototypeof({}, null);

用於讀取乙個物件的原型物件

object.getprototypeof(obj);

返回自身的(不含繼承的)所有可遍歷(enumerable)屬性的鍵名的陣列

var obj = ;

object.keys(obj)

// ["foo", "baz"]

返回自身的(不含繼承的)所有可遍歷(enumerable)屬性的鍵對應值的陣列

const obj = ;

object.values(obj)

// ["bar", 42]

返回乙個物件自身的(不含繼承的)所有可遍歷(enumerable)屬性的鍵值對的陣列

const obj = ;

object.entries(obj)

// [ ["foo", "bar"], ["baz", 42] ]

用於將乙個鍵值對陣列轉為物件

object.fromentries([

['foo', 'bar'],

['baz', 42]

])// 

ES6 細化ES6之 物件的擴充套件

物件的屬性 屬性表示法es6 允許在大括號裡面,直接寫入變數和函式,作為物件的屬性和方法 es5 let name 張無忌 function sayme es5定義物件的屬性和方法的方式 var obj console.log obj.name 張無忌es6 let name 張無忌 functio...

ES6中對物件的擴充套件

es6允許直接寫入變數和函式作為物件的屬性和方法。這樣的書寫更加簡潔。es6允許在物件中只寫屬性名,不寫屬性值。這時,屬性值等於屬性名所代表的變數。function f x y f 1,2 object function getpoint getpoint js語言定義物件的屬性有兩種方法。obj....

es6中新增的常用數值擴充套件

number.integer 123 true 是否為整形數字 注意,引數必須是數字,字串的數字都不行 number.max safe integer number.min safe integer js可處理的最大和最小的數值,也就是安全區 number.isfinite 用來檢查乙個數值是否為有...