运算符
JavaScript 运算符用于赋值、比较、执行算术运算等。
运算符 | 描述 |
---|---|
算术运算符 | 用于执行两个变量或值的运算。 |
赋值运算符 | 用于给 JavaScript 变量赋值。 |
比较运算符 | 用于逻辑语句的判断,从而确定给定的两个值或变量是否相等。 |
条件运算符 | 用于基于条件的运算。 |
逻辑运算符 | 用来确定变量或值之间的逻辑关系。 |
位运算符 | 工作于32位的数字上。任何数字操作都将转换为32位。结果会转换为 JavaScript 数字。 |
一、算术运算符
算术运算符用于执行两个变量或值的运算。
运算符 | 描述 |
---|
- | 加法
- | 减法
- | 乘法
/ | 除法
% | 余数
++ | 自增
– | 自减
++i 和 i++ 的区别
++i
前自加:先执行自加操作,再引用 i 值。
i++
后自加:先引用 i 值,再进行自加操作。
如果自加语句独立成为一个单独的语句,那么前后自加是完全相同的。
for(i = 0; i < 100; i ++)
for(i = 0; i < 100; ++i)
当运算变量本身值会在自加语句中,同时执行其它操作,二者就有区别了。
var i = 10
var a = i++ // 这里i要先赋值,再自加。语句执行后 a=10, i=11;
var i = 10
var a = ++i // 这里i要先自加,再赋值。语句执行后 a=11, i=11;
二、赋值运算符
赋值运算符用于给 JavaScript 变量赋值。
运算符 | 示例 |
---|---|
= | x = 1 |
+= | x += 1 等价于 x = x + 1 |
-= | x -= 1 等价于 x = x - 1 |
*= | x *= 2 等价于 x = x * 2 |
/= | x /= 2 等价于 x = x / 2 |
%= | x %= 2 等价于 x = x % 2 |
三、比较运算符
比较运算符用于逻辑语句的判断,从而确定给定的两个值或变量是否相等。
运算符 | 描述 |
---|---|
== | 等于 5 == '5' true |
=== | 值及类型均相等(恒等于)5 === '5' false 建议代码中使用全等号 |
!= | 不等于 |
!== | 值与类型均不等(不恒等于) |
| 大于
< | 小于
= | 大于或等于
<= | 小于或等于
四、条件运算符
条件运算符(三元运算符)用于基于条件的运算。
语法
variablename = (condition) ? value1 : value2
说明
代码 | 描述 |
---|---|
condition | 判断条件。 |
? | condition 为true 时取? 后面的值(或执行代码)。 |
: | condition 为false 时取: 后面的值(或执行代码)。? : 必须成对出现 |
示例
var txt = status === '0' ? '初始' : '其他'
// 嵌套
var txt = status === '0' ? '初始' : status === '1' ? '提交' : '其他'
五、逻辑运算符
逻辑运算符用来确定变量或值之间的逻辑关系。
1、用于判断
运算符 | 描述 |
---|---|
|| | 或。只需要满足一个条件。`(x |
&& | 且。必须同时满足所有条件。(x&&y&&z) (x/y/z必须都为true,整个结果才为true,否则为false) |
! | 非。(!x) (x为true,则结果为false) |
2、用于条件运算
条件运算符语法简洁,对于简单的三元运算来说,使用起来比 if 语句要方便。但是必须 ? :
一起使用,如果只需要做一层判断,条件运算符就无能为力了。这个时候,就可以使用 &&
||
:
代码 | 描述 |
---|---|
`var type = param.type | |
typeof success === 'function' && success() | 如果typeof success === 'function' 为true ,则执行代码success() 。 |
六 、位运算符
运算符 | 描述 | 例子 | 类似于 | 结果 |
---|---|---|---|---|
& | AND,如果两位都是1,则设置每位为1。 | x = 5 & 1 | 0101 & 0001 | 0001,即 1 |
| | OR,如果两位之一为1,则设置每位为1。 | x = 5 | 1 | 0101 | 0001 | 0101,即 5 |
^ | 异或,如果两位只有一位为1,则设置每位为1。 | x = 5 ^ 1 | 0101 ^ 0001 | 0100,即 4 |
~ | 取反,反转所有位。 | x = ~ 5 | ~0101 | 1010,即 -6 |
<< | 零填充左位移,通过从右推入零向左位移,并使最左边的位脱落。 | x = 5 << 1 | 0101 << 1 | 1010,即 10 |
| 有符号右位移,通过从左推入最左位的拷贝来向右位移,并使最右边的位脱落。 | x = 5 >> 1 | 0101 >> 1 | 0010,即 2
| 零填充右位移,通过从左推入零来向右位移,并使最右边的位脱落。| x = 5 >>> 1 | 0101 >> 1 | 0010,即 2