什么是运算符?
简单的答案可以使用表达式4+5等于9。在这里,4和5被称为操作数;+被称为运算符。 JavaScript语言支持下列类型的运算符。
-
算术运算符
-
比较运算符
-
逻辑(或关系)运算符
-
赋值运算符
-
有条件的(或三元)运算符
让我们对所有运算符一个一个地来看看。
算术运算符:
JavaScript语言支持以下算术运算符:
假设变量A=10和变量B=20则:
运算符 | 描述 | 示例 |
---|---|---|
+ | 相加两个操作数 | A + B = 30 |
- | 第一减去第二操作数 | A - B = -10 |
* | 相乘两个操作数 | A * B = 200 |
/ | 通过分子除以分母 | B / A = 2 |
% | 模运算和整数除法后的余 | B % A = 0 |
++ | 递增操作,增加一个整数值 | A++ = 11 |
-- | 递减操作,减少一个整数值 | A-- = 9 |
注:加法运算符(+)适用于数字和字符串。例如“a”+10将会得到“a10”。
比较运算符:
JavaScript语言支持以下比较运算符
假设变量A=10和变量B=20则:
运算符 | 描述 | 示例 |
---|---|---|
== | 检查两个操作数的值是否相等,如果是的话那么条件为真 | (A == B) 不为 true. |
!= | 检查两个操作数的值是否相等,如果值不相等,则条件变为真 | (A != B) 为 true. |
> | 检查左边的操作数的值是否大于右操作数的值,如果是的话那么条件为真 | (A > B) 不为 true. |
< | 检查左边的操作数的值是否小于右操作数的值,如果是的话那么条件为真 | (A < B) 为 true. |
>= | 检查左边的操作数的值是否大于或等于右操作数的值,如果是的话那么条件为真 | (A >= B) 不为 true. |
<= | 检查左边的操作数的值是否小于或等于右操作数的值,如果是的话那么条件为真 | (A <= B) 为 true. |
逻辑运算符:
JavaScript语言支持以下逻辑运算符
假设变量A=10和变量B=20则:
运算符 | 描述 | 示例 |
---|---|---|
&& | 所谓逻辑与操作。如果两个操作数是非零那么那么的条件为true | (A && B) 为 true. |
|| | 所谓的逻辑或操作。如果任何两个操作数都非零然后再条件变为true | (A || B) 为 true. |
! | 所谓逻辑非运算符。使用反转操作数的逻辑状态。如果条件为真,那么逻辑非操作符的结果false | !(A && B) 为 false. |
位运算符:
JavaScript语言支持以下位运算符
假设变量A=2和变量B=3,则:
运算符 | 描述 | 示例 |
---|---|---|
& | 所谓的按位与操作。它执行其整数参数的每一位布尔与运算 | (A & B) = 2 . |
| | 所谓的按位或操作符。它执行其整数参数的每一位布尔或操作 | (A | B) = 3. |
^ | 所谓的按位异或运算符。它执行布尔异或运算,其整数参数的每个位。异或意味着一个操作数有一个为真或两个操作数为true,但不能同时使用 | (A ^ B) = 1. |
~ | 所谓的按位非操作符。这是一个是一元运算符和操作由扭转操作数的所有位 | (~B) = -4 . |
<< | 所谓的按位左移运算。它移动的所有位在其第一个操作数向左的第二个操作数指定的位数。新的位用零填充。移一个位置剩下的值等效于乘以2,移位两个位置相当于乘以4 | (A << 1) = 4. |
>> | 所谓的按位右移带符号的操作。它移动的所有位在其第一个操作数到右边的第二个操作数指定的位数。在左边填充在比特取决于原始操作数的符号位,在为了保持结果的符号。如果第一操作数是正的,其结果有放置在高比特零;如果第一操作数是负的,其结果有那些放置在高比特。移的值正确的地方,相当于除以2(舍去余),右移两个地方是相当于由4到整数除法,并依此类推 | (A >> 1) = 1. |
>>> | 所谓的按位右移零操作。操作符与>>操作一样,所不同的是位移在左侧总是零 | (A >>> 1) = 1. |
赋值运算符:
JavaScript语言支持以下赋值运算符:
运算符 | 描述 | 示例 |
---|---|---|
= | 简单的赋值操作符,分配值从右边的操作数左侧的操作数 | C = A + B 将分配A + B 的值到 C |
+= | ADD和赋值运算符,它增加了右操作数左操作数和分配结果左操作数 | C += A 相等于 C = C + A |
-= | 减和赋值运算符,它减去右操作数从左侧的操作数和分配结果左操作数 | C -= A 相等于 C = C - A |
*= | 乘法和赋值运算符,它乘以右边的操作数与左操作数和分配结果左操作数 | C *= A 相等于 C = C * A |
/= | 相除赋值运算符,它把左操作数与右操作数和分配结果左操作数 | C /= A 相等于 C = C / A |
%= | 模量和赋值运算符,它需要使用两个操作数的模量和分配结果左操作数 | C %= A 相等于 C = C % A |
注:同样的逻辑也适用于位运算符,它们就如 <<=, >>=, >>=, &=, |= and ^=.
其他运算符
条件运算符 (? :)
有一种叫做条件运算符。根据第一计算表达式为真或假的值,然后执行根据计算结果来计算给定两个陈述中的一个。条件操作符的语法如下:
运算符 | 描述 | 示例 |
---|---|---|
? : | 条件表达式 | 如果条件为 true ? 那么为X值 : 否则为 Y值 |
typeof 运算符
typeof是一元运算符是放置其单个操作数之前,它可以是任何类型。它的值是一个字符串,指示操作数的数据类型。
typeof运算符的计算结果为"number", "string", 或 "boolean",如果操作数是数字,字符串或布尔值,并返回true或false的基础上进行评估计算。下面是typeof运算符返回值的列表:
类型 | 返回 typeof 的字符串 |
---|---|
Number | "number" |
String | "string" |
Boolean | "boolean" |
Object | "object" |
Function | "function" |
Undefined | "undefined" |
Null | "object" |