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 ”