1.Array.prototype.includes
2.Exponentiation Operator(求冪運算)javascript
Array.prototype.includes用法容易和簡單。它是一個替代indexOf,開發人員用來檢查數組中是否存在值,indexOf是一種尷尬的使用,由於它返回一個元素在數組中的位置或者-1當這樣的元素不能被找到的狀況下。因此它返回一個數字,而不是一個布爾值。開發人員須要實施額外的檢查。在ES6,要檢查是否存在值你須要作一些以下的小技巧,由於他們沒有匹配到值,Array.prototype.indexOf返回-1變成了true(轉換成true),可是當匹配的元素爲0位置時候,該數組包含元素,卻變成了false。includes在一個數組或者列表中檢查是否存在一個值。vue
let arr = ['react', 'angular', 'vue'] // WRONG if (arr.indexOf('react')) { // 0 -> evaluates to false, definitely as we expected console.log('Can use React') // this line would never be executed } // Correct if (arr.indexOf('react') !== -1) { console.log('Can use React') }
使用一點點hack 位運算符 ~
使代碼更加緊湊一些,由於~
(位異或)對任何數字至關於-(a + 1)
:java
let arr = ['react', 'angular', 'vue'] // Correct if (~arr.indexOf('react')) { console.log('Can use React') }
在ES7中使用includes
代碼以下:react
let arr = ['react', 'angular', 'vue'] // Correct if (arr.includes('react')) { console.log('Can use React') }
同時還能夠在字符串中使用includes
代碼以下:數組
let str = 'React-Native' // Correct if (str.toLowerCase().includes('react')) { // true console.log('Found "react"') }
求冪運算大多數是爲開發者作一些數學計算,對於3D,VR,SVG還有數據可視化很是有用。在ES6或者早些版本,你不得不建立一個循環,建立一個遞歸函數或者使用Math.pow,在ES6/2015ES,你能使用
函數Math.pow
建立一個短的遞歸箭頭函數
calculateExponent = (base, exponent) => base*((--exponent>1)?calculateExponent(base, exponent):base) console.log(calculateExponent(7,2) === Math.pow(7,2)) // true console.log(calculateExponent(2,7) === Math.pow(2,7)) // true
在ES7 /ES2016,以數學嚮導的開發者能夠使用更短的語法:this
let a = 7 ** 2 let b = 2 ** 7 console.log(a === Math.pow(7,2)) // true console.log(b === Math.pow(2,7)) // true