JavaScript 入门·JavaScript 具有全范围的运算符
复合赋值运算符
运算符 | 符号 |
---|---|
加法 | += |
按位与 | &= |
按位或 | |= |
按位异或 | ^= |
除法 | /= |
左移 | <<= |
取模 | %= |
乘法 | *= |
右移 | >>= |
减法 | -= |
无符号右移 | >>>= |
要求
版本信息
条件(三目)运算符 (?:)
根据条件执行两个语句中的其中一个。
test ?
语句1 :
语句2
参数
test
任何 Boolean 表达式。
语句1
当 test 是 true 时执行的语句。可以是复合语句。
语句2
当 test 是 false 时执行的语句。可以是复合语句。
说明
?: 运算符是 if...else 语句的快捷方式。它通常被用作较大表达式的一部分,而在此处使用 if...else 语句是不协调的。例如:
var now = new Date();
var greeting = "Good" + ((now.getHours() > 17) ? " evening." : " day.");
在该例子中,如果是 6pm 以后,则创建一个包含 "Good evening." 的字符串。使用 if...else 语句的等效代码如下:
var now = new Date();
var greeting = "Good";
if (now.getHours() > 17)
greeting += " evening.";
else
greeting += " day.";
要求
版本 1
请参阅
if...else 语句 | 运算符优先级 | 运算符总结
delete 运算符
从对象中删除一个属性,或从数组中删除一个元素。
delete expression
expression 参数是一个有效的 JScript 表达式,通常是一个属性名或数组元素。
说明
如果 expression 的结果是一个对象,且在 expression 中指定的属性存在,而该对象又不允许它被删除,则返回 false。
在所有其他情况下,返回 true。
要求
版本 3
请参阅
运算符优先级 | 运算符总结
除法赋值运算符 (/=)
变量值除以表达式值,并将结果赋给该变量。
result /= expression
参数
result
任何数值变量。
expression
任何数值表达式。
说明
使用 /= 运算符和使用下面的语句是等效的:
result = result / expression
要求
版本 1
请参阅
/ 运算符 | 运算符优先级 | 运算符总结
除法运算符 (/)
将两个表达式的值相除。
result = number1 / number2
参数
result
任何数值变量。
number1
任何数值表达式。
number2
任何数值表达式。
要求
版本 1
请参阅
/= 运算符 | 运算符优先级 | 运算符总结
in 运算符
测试对象中是否存在该属性。
result = property in object
参数
result
必选项。任意变量。
property
必选项。相当于字符串表达式的一个表达式。
object
必选项。任意对象。
说明
in 操作检查对象中是否有名为 property 的属性。也可以检查对象的原型,以便知道该属性是否为原型链的一部分。
要求
版本 1
请参阅
运算符优先级 | 运算符总结
递增 (++) 和递减 (--) 运算符
变量值递增一或递减一。
语法 1
result = ++variable
result = --variable
result = variable++result = variable--
语法 2
++variable
--variable
variable++variable--
参数
result
任何变量。
variable
任何变量。
说明
递增和递减运算符,是修改存在变量中的值的快捷方式。包含其中一个这种运算符的表达式的值,依赖于该运算符是在变量前面还是在变量后面:
var j, k;
k = 2;
j = ++k;
因为递增发生在表达式被求值前,所以值 3 赋给了 j。
和下面的例子对照:
var j, k;
k = 2;
j = k++;
在此,因为递增发生在表达式被求值后,所以值 2 赋给了 j。
JavaScript 具有全范围的运算符,包括算术、逻辑、位以及赋值运算符。此外还有其他一些运算符。
计算 逻辑 位运算 赋值 杂项
描述 符号
负值 -
逻辑非 !
按位取反 ~
赋值 =
删除 delete
递增 ++
小于 <
按位左移 <<
运算赋值 oP= typeof
运算符
递减 --
大于 >
按位右移 >>
void 运算符 void
乘法 *
小于等于 <=
无符号右移 >>>
除法 /
大于等于 >=
按位与 &
取模运算 %
等于 ==
按位异或 ^
加法 +
不等于 !=
按位或 |
减法 -
逻辑与 &&
逻辑或 ||
条件(三元运算符) ?:
逗号 ,
恒等 ===
不恒等 !==
运算符优先极
JavaScript 中的运算符是按照一个特定的顺序来求值的。这个顺序就是运算符的优先级。下表按从最高到最低的优先级列出了这些运算符。处于同一行中的运算符按从左至右的顺序求值。
运算符 描述
. [] () 字段访问、数组下标以及函数调用
++ -- - ~ ! typeof new void delete 一元运算符、返回数据类型、对象创建、未定义值
* / % 乘法、除法、取模
+ - + 加法、减法、字符串连接
<< >> >>> 移位
< <= > >= 小于、小于等于、大于、大于等于
= != === !== 等于、不等于、恒等、不恒等
& 按位与
^ 按位异或
| 按位或
&& 逻辑与
|| 逻辑或
?: 条件
= oP= 赋值、运算赋值
, 多重求值
圆括号可用来改变求值顺序。圆括号中的表达式应在其用于语句的其余部分之前全部被求值。
具有较高优先级的运算符将在具有较低优先级的运算符之前被求值。例如:
z = 78 * (96 + 3 + 45)
在该表达式中有五个运算符: =, *, (), +, 以及 +。根据优先级,它们将按下面的顺序求值: (), *, +, +, =。
首先对圆括号内的表达式求值:其中有两个加法运算符,它们具有相同的优先级:96 和 3 相加,然后再将它们的和与 45 相加,得到的结果为 144。
然后是乘法运算: 78 和 144 相乘,得到结果为 11232。
最后是赋值运算:将 11232 赋给 z。