5*2// 5 = right operand// 2 = left operand // operand sometimes call arguments// An operator is unarylet x =1;x =-x;alert( x ); // -1, unary negation was applied// An operator is binarylet x =1, y =3;alert( y - x ); // 2, binary minus subtracts values
String concatenation, binary +
+ 若有一邊的值是字串會轉換成字串相加。
alert(2+2+'1' ); // "41" and not "221"
Numeric conversion, unary +
unary + 把值轉換成數字
// Converts non-numbers does the same thing as Number(...)alert( +true ); // 1alert( +"" ); // 0
如果從 HTML 得到值通常是字串,可以用 + 轉換成數字。
let apples ="2";let oranges ="3";// both values converted to numbers before the binary plus// unary + precedance > binary precedancealert( +apples ++oranges ); // 5// the longer variant// alert( Number(apples) + Number(oranges) ); // 5
let a, b, c;a = b = c =2+2;alert( a ); // 4alert( b ); // 4alert( c ); // 4
Remainder %
計算餘數
alert( 5%2 ); // 1 is a remainder of 5 divided by 2alert( 8%3 ); // 2 is a remainder of 8 divided by 3alert( 6%3 ); // 0 is a remainder of 6 divided by 3
Exponentiation **
計算次方
alert( 2**2 ); // 4 (2 * 2)alert( 4** (1/2) ); // 2 (power of 1/2 is the same as a square root, that's maths)
Increment / decrement
let counter =2;counter++; // works the same as counter = counter + 1, but is shorteralert( counter ); // 3let counter =2;counter--; // works the same as counter = counter - 1, but is shorteralert( counter ); // 1alert( 5++ ); // error only applied to variables
在過程中使用前綴或後綴沒有差別,但結果包含前綴跟後綴是有差別的。
let counter =0;counter++;++counter;alert( counter ); // 2, the lines above did the samelet counter =0;alert( ++counter ); // 1 prefixlet counter =0;alert( counter++ ); // 0 postfix
Bitwise operators
AND ( & )
OR ( | )
XOR ( ^ )
NOT ( ~ )
LEFT SHIFT ( << )
RIGHT SHIFT ( >> )
ZERO-FILL RIGHT SHIFT ( >>> )
Modify-in-place
想要對變數做運算後,儲存新的值在同一變數可以使用縮寫。
let n =2;n +=5; // now n = 7 (same as n = n + 5)n *=2; // now n = 14 (same as n = n * 2)alert( n ); // 14
Comma
最奇怪的運算符號,可以運算多個運算式,用,分開,但只有最後一個值會被返回。
let a = (1+2,3+4);alert( a ); // 7 (the result of 3 + 4)// three operations in one linefor (a =1, b =3, c = a * b; a <10; a++) {...}