ES6個人筆記記錄 陣列擴充套件

2021-10-05 21:11:57 字數 1987 閱讀 5181

// 擴充套件運算子

console.

log(1,

...[2,

3,4]

,5);

// es5

console.

log(math.max.

(null,[

14,2,

48]))

;// es6

let= math;

console.

log(

max(

...[14,

2,48]

));// es5

var arr1 =[0

,1,2

];var arr2 =[3

,4,5

];console.

log(

"es5:"

+array.prototype.push.

(arr1,arr2)

,arr1)

;// es6

let arr3 =[0

,1,2

];let arr4 =[3

,4,5

];console.

log(

"es6:"

+arr3.

push

(...arr4)

,arr3)

;// 合併陣列

// es5

let[arr5,arr6,arr7]=[

['a'

,'b'],

['c'],

['d'

,'e']]

;console.

log(

"es5:"

+arr5.

concat

(arr6,arr7));

// es6

let[arr8,arr9,arr10]=[

['a'

,'b'],

['c'],

['d'

,'e']]

;console.

log(

"es6:"+[

...arr8,

...arr9,

...arr10]);

// array.from()

let arraylike =

;// es5

console.

log(

.slice.

call

(arraylike));

// es6

console.

log(array.

from

(arraylike,))

;console.

log(array.

from

(arraylike,x => x + x ));

// 陣列例項的enties()、values()、keys()

for(

let index of

['a'

,'b'].

keys()

)for

(let elem of

['a'

,'b'].

values()

)for

(let

[index,item]of[

'a',

'b']

.entries()

)// indexof()與includes()比較

/* indexof()有兩個缺點。

1.是不夠語義化。

含義是找到引數的第乙個出現位置,所以要比較是不是-1,表達不夠直觀

2.內部使用嚴格相等運算子'==='進行判斷,會出現nan的誤判

*/console.

log([1

,2,3

].includes(1

));console.

log([1

,2,3

].indexof(1

));// es6將空位明確轉為undefined

ES6個人筆記記錄 Symbol

es5 的物件屬性名都是字串,這容易造成屬性名的衝突 比如,我們使用了乙個他人提供的物件,但又想為這個物件新增新的方法cmixin 模式 新方法的名字就有可能與現有方法產生衝突。es6引入了一種新的原始資料型別symbol,表示獨一無二的值 是第七種資料型別 1.number 2.string 3....

ES6個人筆記記錄 Proxy2

1.getlet person let proxy1 newproxy person,else console.log proxy1.name,proxy1.age get方法可以被繼承 let proto newproxy const object const reflect let obj1 c...

ES6個人筆記記錄 Proxy5

雖然proxy可以 針對目標物件的訪問,但他不是目標物件的透明 即不做任何攔截的情況下也無法保證與目標物件的行為一致。主要原因就是在proxy 的情況下,目標物件內部的this關鍵字會指向proxy const target const handler const proxy newproxy ta...