Math.pow是能夠進行求冪運算的
求冪運算符是兩個星號函數
let result = 5 ** 2 console.log(result) //25 console.log(result === Math.pow(5, 2)) //trueA
求冪運算符的優先級高於其它二元運算符,可是一元運算符的優先級高於求冪運算符測試
let result = 2 * 5 ** 2 console.log(result)//50
求冪運算符左側的一元運算符只能是++或者是--prototype
let result =-5** 2//語法錯誤 let result = -(5 ** 2)//能夠這樣包裹 let result = (-5) ** 2//也能夠這樣包裹
在ES6中可經過String.prototype.includes方法來檢查給定字符串中是否存在某些子字符串
Array.prototype.includes接受倆參數code
let values = [1, 2, 3] console.log(values.includes(1))//true console.log(values.includes(0))//false console.log(values.includes(1, 2))//false
用includes進行值比較時,===操做符的使用只有一個例外:即便NaN===NaN的計算結果是false,NaN也被認爲是等於NaN,這與indexOf方法的行爲不一樣,後者嚴格使用===進行比較索引
let values = [1, NaN, 2] console.log(values.indexOf(NaN))//-1 console.log(values.includes(NaN))//true
另一個奇怪的地方是+0和-0無論是在indexOf仍是在includes中的表現行爲都相同作用域
let values = [1, +0, 2] console.log(values.indexOf(-0))//-1 console.log(values.includes(-0))//false--後面發現測試的竟然是true
在ES6中仍然能夠使用「use strict」指令來指定嚴格模式
ES7中指出只有參數不包含解構或默認值的簡單參數列表時才能夠在函數中使用「use strict」字符串
function okay(first, second) { "use strict" return first } //這裏拋出語法錯誤 function notOkay1(first, second = first) { "use strict" return first }