ES6 新增物件的特性和方法

2021-10-04 07:23:41 字數 2081 閱讀 4884

es6中對物件新增了很多特性和方法,簡化了很多。

成員速寫和方法速寫

//befor:

function

createuser

(name,age,***)}}

//es6

function

createuser

(name,age,***)}}

const user =

createuser

("1"

,"22"

,"boy");

console.

log(user)

; user.

fun(

);

省略了冒號和屬性值,這樣寫讓**更簡潔了

專案2

//befor

const user =

user[

'ages']=

20;console.

log(user)

////now

const prorp1 =

"name"

;const prorp2 =

"age"

;const users =

console.

log(users)

;

用陣列變數作為屬性名

在es6中還新增了許多物件的api

object.is(),比較兩個值是否相同,es5中有相等運算子(==)和嚴格相等運算子( === ),這兩個都有各自的缺點,相等運算子會自動轉換資料型別,嚴格運算子判斷nan,+0 -0,判斷的問題,object.is() 就很好的解決了這些問題

console.

log(

nan===

nan)

//false

console.

log(-0

===+0)

//trun

console.

log(object.is(

nan,

nan)

)//true

console.

log(object.is(

+0,-

0))//false

assign(url: domstring) 混合物件、轉殖

const obj1 =

const obj2 =

const obj = object.

assign

(,obj1,obj2)

;console.

log(obj)

;console.

log(obj == obj1)

/*object

a: 1

b: 2

c: 3

d: 3

e: 4*/

//false

先將obj2的所有可列舉物件賦值給obj2,然後在依次obj1的屬性

getownpropertynames() 列舉的順序,返回乙個陣列,列舉出來物件的屬性

const obj =

console.

log(obj)

; console.

log(object.

getownpropertynames

(obj))//

//(6) ["0", "3", "a", "b", "c", "d"]

按順序排列了物件的屬性名

setprototypeof() 設定某個物件的隱式原型 ,接收兩個引數:

第乙個是現有物件,第二個是原型物件。

const objj1 =

const objj2 =

object.

setprototypeof

(objj1,objj2)

console.

log(objj1)/*

a: 1

__proto__:

b: 2__proto__: object

*/

可以看到a1的__proto__ 裡面有了b2

Es6新增物件和陣列方法

合併物件object.assign 比較倆個值嚴格相等object.js eg object.js nan,nan truevalue 值 writable 可編寫 enumerable 可列舉 configurable 可配置 返回該屬性的描述物件object.getownpropertydesc...

ES6新增特性

let 1.let宣告的變數不會掛在window中,不會像var宣告的變數一樣造成全域性變數的汙染 2.新增了乙個塊級作用域 以前只有函式作用域,全域性作用域 3.let是不允許重複宣告 4.let不會有宣告提前 var num 15 全域性變數 console.log num 15 console...

ES6新增特性

1 變數定義 const let 2 解構 3 箭頭函式 核心 this的指向 4 模板字面量 5 spread rest 物件展開 6 子符串 陣列新增方法 console.log str.includes de true,字串是否包含de console.log str.endswith ef ...