ES6標準入門 6 陣列的擴充套件

2022-06-08 17:39:08 字數 1882 閱讀 3184

擴充套件運算子 spread

#例子1

# es5 的寫法

function f (x, y, z)

let args = [0, 1, 2]

# es6 的寫法

f(...args)

# 例子2

# es5 的寫法

let arr1 = [0, 1, 2]

let arr2 = [3, 4, 5]

# es6 的寫法

arr1.push(...arr2)

與解構賦值結合

函式的返回值

字串實現了iterator介面的物件

array.from

# 類陣列物件本質特徵只有一點: 即必須有length屬性

let arraylike =

# es5

let arr1 = .slice.call(arraylike)

# es6

let arr2 = array.from(arraylike)

array.from(arraylike, x => x * x)

# 等同於

array.from(arraylike).map(x => x * x)

array.from的另乙個應用是將字串轉換為陣列,然後返回字串的長度,因為它能正確處理各種unicode字元,可以避免js將大於\uffff的unicode字元算作兩個字元的bug。

array.of()

array.of( 3 )   // [3]

array(3) // [, , ,]

function arrayof ()
陣列例項的方法

array.prototype.copywithin(target, start = , end = this.length)

所有陣列成員依次執行該**函式,直到找到第乙個為true的成員,然後返回該成員。

如果沒有符合的成員即返回undefined

findindex

這兩個引數都可接收第二個引數,用來繫結**函式的this值

這兩個方法都可以發現nan,彌補了陣列indexof方法的不足。

fill()

['a', 'b', 'c'].fill(7)

// [7, 7, 7]

new array(3).fill(7)

// [7, 7, 7]

for(let index of ['a', 'b'].keys()) 

# 如果不使用for...of迴圈,可以手動呼叫遍歷器物件的next方法進行遍歷。

let letter = ['a', 'b', 'c']

let entries = letter.entries()

console.log(entries.next().value) //[0. 'a']

console.log(entries.next().value) //[0. 'b']

console.log(entries.next().value) //[0. 'c']

內部使用嚴格相等運算子 回導致對nan的誤判。

陣列的空位

由於空位的處理規則非常不統一,所以建議避免出現空位。

筆記內容整理來自阮一峰老師的《es6標準入門》

《ES6標準入門》 字串擴充套件

感覺暫時用不到,手動忽略。兩者都是返回字串給定位置的字元 charat es5語法,不支援unicode編號大於0xffff的字元 at es7語法,支援unicode編號大於0xffff的字元。abc charat 0 a abc at 0 a 傳統js語法 indexof 傳統js語法,返回指定...

ES6入門05 陣列擴充套件

11 console.log arr 3,abc true,11 let empty array.of console.log empty hello beautiful girl 類似map對映的功能 from接收兩個引數,array.from arr,fn fn的返回值組成了最終的陣列 cons...

《ES6標準入門》(一)let和const

一 let命令 1 let的作用域只在 塊內,塊外無效 var全域性有效 var a for var i 0 i 10 i a 6 對於這段 變數i是var宣告的,在全域性範圍內有效,所以每一次迴圈,新的i值都會覆蓋舊值,導致最後輸出的是最後一輪的i值 如果使用let,宣告的變數僅在塊級作用域內有效...