本系列文章經過重新編排和擴充,已出書為ECMAScript關鍵30天。原始文章因當時準備時程緊迫,多少有些許錯誤。為了避免造成讀者的困擾,以及配合書籍的內容規劃,將會陸續更新本系列文章。
本篇文章在 2021/11/8 已更新。
從 ES2016 開始的改版,規模並不像 ES2015 般那麼的龐大。以目前來看大部分是些內建型別或與語法的擴充。以 ES2016 來說,主要只有推出兩個標準:
Array.prototype.includes(element)
在 ES2015 以前,如果要查詢在陣列或字串中,某個元素是否存在。最常用的方法就是 indexOf
。像這樣:
const arr = [1, 2, 3];
const hasOne = arr.indexOf(1) > -1;
不過這樣子以陳述式表達的寫法,撰寫上不是那麼方便,也缺乏語意性。因此在 ES2016 擴充了查詢語法 includes
。直接將想查詢的元素放入參數,並以布林值回傳是否存在。
[1, 2, 3].includes(4); // false
"One Punch Man".includes("M"); // true
base ** exponent
**
這個運算子相當於 Math.pow(base, exponent)
。意思是求 base 數值的 exponent 次方。這個運算子在許多語言,像是 Python、Ruby、MATLAB 等都已經被標準化,因此在這版推出,主要與其他語言有一致性,並在寫法上更簡潔。
const n = 3 ** 4; // 81
// 等於
const n = Math.pow(3, 4); // 81