擴充套件運算子 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,宣告的變數僅在塊級作用域內有效...