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 ”