-
求冪 (**) - JavaScript | MDN
-
GitHub - tc39/proposal-exponentiation-operator: Progress tracking for ES7 exponentiation operator
求冪運算子,一種將指數應用于基數的數學計算,已有的Math.pow()方法可以執行求冪計算,但它也是為數不多的需要通過方法而不是正式的運算子來進行求冪運算的語言之一,
求冪運算子是兩個星號(**):左運算元是基數,右運算元是指數,并且是右結合的: a ** b ** c 等于 a ** (b ** c).
// x ** y
let squared = 2 ** 2;
// same as: 2 * 2
// also same as, Math.pow(2,2);
let cubed = 2 ** 3;
// same as: 2 * 2 * 2
// also same as : Math.pow(2,3)
// x **= y
let a = 2;
a **= 2;
// same as: a = a * a;
// a等于4
let b = 3;
b **= 3;
// same as: b = b * b * b;
// b等于27
// 從右往左的順序
2 ** 3 ** 2 // 512
2 ** (3 ** 2) // 512
(2 ** 3) ** 2 // 64
運算優先級
求冪運算子在Javascript所有二進制運算子中具有最高的優先級(一元運算子的優先級高于**),這意味著它首先應用于所有復合操作,
let result = 2 * 5 ** 2;
console.log(result); // 50
先計算Math.pow(5, 2),然后乘以2,得出50,
運算限制
左側的一元運算式只能使用++或--,
// 語法錯誤
let result = -5 ** 2;
-是只適用于5呢,還是運算式5**2的結果,這邊的語法有問題,含義不清,所以會報錯,
Uncaught SyntaxError: Unary operator used immediately before exponentiation expression. Parenthesis must be used to disambiguate operator precedence
如果需要明確意圖,需要用括號包裹-5,或5**2,
let result = -(5 ** 2); // -25
let result1 = (-5) ** 2; // 25
上述兩個意圖明確的運算式就是正確的,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/501820.html
標籤:其他
上一篇:vue和java圖片上傳
