JavaScript/操作符和表達式
外觀
算術操作符
[編輯]Javascript 的算術操作符共有5個:+
, -
, *
, /
和 %
。和其他語言一樣,這些操作符分別用於:加法,減法,乘法,除法和取模。
var add = 12 + 5; // 17
var sub = 12 - 5; // 7
var mul = 12 * 5; // 60
var div = 12 / 5; // 2.4 - 除法会返回浮点数
var mod = 12 % 5; // 2 - 12整除5的余数是2
像除零這種不正確的數學運算,變量會得到錯誤的值——無窮大或者NaN
(Not a Number)。
取模運算的返回值與第一個操作數的符號相同。
二元操作符 +
和 -
也有一元的版本。這時它們只操縱一個變量,+
返回對象的數字形式, -
返回相反數。
var a = "-1";
var b = a; // b = "-1": 字符串
var plus = +a; // c = -1 : 数字
var minus = -a; // d = 1 : 数字
操作符 | 描述 | 示例 | 輸出 |
+ | 加法 | x=2 y=2 x+y |
4 |
- | 減法 | x=5 y=2 x-y |
3 |
* | 乘法 | x=5 y=4 x*y |
20 |
/ | 除法 | 15/5 5/2 |
3 2.5 |
% | 求餘數 | 5%2 10%8 10%2 |
1 2 0 |
++ | 自增 | x=5 x++ |
x=6 |
-- | 自減 | x=5 x-- |
x=4 |
字符串操作符
[編輯]一個字符串通常是文字,如「Hello World!」。要合併兩個字符串,用操作符「+」。
txt1="先天下之忧而忧,"
txt2="后天下之乐而乐。"
txt3=txt1+txt2
現在變量txt3即為:先天下之憂而憂,後天下之樂而樂。
字符串也可以與數字、布爾值等相互連接:
//假设username和score已经从部api加载完毕
msg1="您好,"
username="jingkaimori";
msg2=",您的积分为:\n";
score=64;
res=msg1+username+msg2+score;
console.log(res)
輸出:
您好,jingkaimori,您的积分为: 64
模板字符串
[編輯]在新版瀏覽器和node等服務器js框架中,可以使用一對反引號「``
」來定義模板字符串。
讓我們改寫上面的用例:
//假设username和score已经从部api加载完毕
username="jingkaimori";
score=64;
template=`您好,${username},您的积分为:\n${score}`
console.log(template)
輸出:
您好,jingkaimori,您的积分为: 64
位操作符
[編輯]Javascript 中有七個位操作符:&
, |
, ^
, ~
, >>
, <<
和 >>>
。
賦值操作符
[編輯]操作符 | 示例 | 等價於 |
= | x=y | x=y |
+= | x+=y | x=x+y |
-= | x-=y | x=x-y |
*= | x*=y | x=x*y |
/= | x/=y | x=x/y |
%= | x%=y | x=x%y |
比較操作符
[編輯]操作符 | 描述 | 示例 |
== | 等於 | 5==8 返回 false |
=== | 全等於(檢查類型是否相同) | x=5 y="5" x==y 返回 true x===y 返回 false |
!= | 不等於 | 5!=8 返回 true |
> | 大於 | 5>8 返回 false |
< | 小於 | 5<8 返回 true |
>= | 大於或等於 | 5>=8 返回 false |
<= | 小於或等於 | 5<=8 返回 true |
邏輯操作符
[編輯]操作符 | 描述 | 示例 |
&& | 和 | x=6 y=3 (x < 10 && y > 1) 返回 true |
|| | 或 | x=6 y=3 (x==5 || y==5) 返回 false |
! | 非 | x=6 y=3 !(x==y) 返回 true |
其他的操作符
[編輯]三目操作符: ?
[編輯]JavaScript也包含一個因在不同條件下賦不同值的條件操作符。
語法:
variablename=(condition)?value1:value2
示例:
greeting=(visitor=="PRES")?"Dear President ":"Dear "
如果變量visitor的值為PRES,那麼greeting的值將為「Dear President 」,相反,則為「Dear 」