ES7的新特性

ES7的新特性

ES7 特性:

1.Array.prototype.includes
2.Exponentiation Operator(求冪運算)javascript

一,Array.prototype.includes

     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"')  
}

二,Exponentiation Operator(求冪運算)**

求冪運算大多數是爲開發者作一些數學計算,對於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
相關文章
相關標籤/搜索