var x = 5; // 赋值5给x var y = 2; // 赋值2给y var z = x + y; // 赋值x和y的和给z var w = x * y; // 赋值x和y的乘积
上例初步解析:
=
符号+
*
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 |
举例如下:
var x = 12; x += 1;
运算符 | 描述 |
---|---|
== | 等于 |
=== | 值相等且数据类型相同 |
!= | 不等于 |
!== | 值不同或者类型不同 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
? | 三元运算符 |
想要了解三元运算符,请看这里。
字符串与数字进行比较时,字符串会自动转成数字后再进行比较。空的字符串会转为0,无法转换成数字的字符串则会成为NaN,因此数字和无法转换成数字的字符串进行比较,结果经常为false。更多请阅读《JS中数字与字符串是如何进行大小比较的》
运算符 | 描述 |
---|---|
&& | and |
|| | or |
! | not |
运算符 | 描述 |
---|---|
typeof | 返回变量种类 |
instanceof | 判断对象是否属于某类型,返回true或false |
案例1:typeof
var a = "反清复明"; alert( typeof(a) ); alert( typeof a );
案例2:instanceof
var a = "反清复明"; var b = new String( "反清复明" ); alert( a ); alert( b ); alert( a instanceof String ); // 会返回false alert( b instanceof String ); // 会返回true
位运算符主要用在32位数字上。JS位运算符常用度不高,可以先略过不看,等有需求时再深入学习。而下例中的位运算,则是JS中的十进制转换成32位数字后得出位运算结果,把运算结果转换回十进制。
运算符 | 描述 | 案例 | 等价于 | 位运算结果 | 转回十进制 |
---|---|---|---|---|---|
& | and | 5 & 1 | 0101 & 0001 | 0001 | 1 |
| | or | 5 | 1 | 0101 | 0001 | 0101 | 5 |
~ | not | ~5 | ~0101 | 1010 | 10 |
^ | xor | 5 ^ 1 | 0101 ^ 0001 | 0100 | 4 |
<< | zero fill left shift | 5 << 1 | 0101 << 1 | 1010 | 10 |
>> | signed right shift | 5 >> 1 | 0101 >> 1 | 0010 | 2 |
>>> | zero fill right shift | 5 >>> 1 | 0101 >>> 1 | 0010 | 2 |