跳至內容

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 」