1、运算符介绍
取一个简单的表达式2 + 3 = 5。这里2和3被称为操作数,而"+"被称为操作符。JavaScript支持以下类型的操作符。
- 算术运算符
- 比较运算符
- 逻辑(或关系)操作符
- 赋值操作符
- 条件(或三元)操作符
2、算术运算符
JavaScript支持以下算术运算符
假设变量x
为10
,变量y
为20
。
序号 | 运算符和描述 |
1 |
添加两个操作数 例如: x + y 值为 30 |
2 |
从第一个操作数中减去第二个操作数 例如: x - y 值为 -10 |
3 |
将两个操作数相乘 例如: x * y 值为 200 |
4 |
分子除以分母 例如: y / x 值为 2 |
5 |
输出整数除法的余数 例如: y % x 值为 0 |
6 |
将整数值加一 例如: x++ 值为 11 |
7 |
将整数值减一 例如: x-- 值为 9 |
注意:加法运算符(+
)适用于数字和字符串。如。“a”+ 10 等于 “a10”。
在JavaScript中使用算术运算符,例如,
var a = 33; var b = 10; var c = "Test"; var linebreak = "\n"; console.log("a + b = "); result = a + b; console.log(result); console.log(linebreak); console.log("a - b = "); result = a - b; console.log(result); console.log(linebreak); console.log("a / b = "); result = a / b; console.log(result); console.log(linebreak); console.log("a % b = "); result = a % b; console.log(result); console.log(linebreak); console.log("a + b + c = "); result = a + b + c; console.log(result); console.log(linebreak); a = ++a; console.log("++a = "); result = ++a; console.log(result); console.log(linebreak); b = --b; console.log("--b = "); result = --b; console.log(result); console.log(linebreak);
将变量设置为不同的值,尝试查看效果。
3、比较运算符
JavaScript支持以下比较操作符:
假设x
值为5
,y
值为6
序号 | 运算符和描述 |
1 | ==(等于) 判断两个操作数的值是否相等,如果相等,则条件成立。 例如: (x == y) 是false。 |
2 | !=(不相等) 检查两个操作数的值是否相等,如果值不相等,则条件成立。 例如: (x != y) 是true。 |
3 | >(大于) 判断左操作数的值是否大于右操作数的值,如果是,则条件成立。 例如: (x > y) 是false。 |
4 | <(小于) 判断左操作数的值是否小于右操作数的值,如果是,则条件成立。 例如: (x < y) 是true。 |
5 | >=(大于或等于) 判断左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。 例如: (x >= y) 是false。 |
6 | <=(小于或等于) 判断左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。 例如: (x <= y) 是true。 |
在JavaScript中使用比较运算符,例如,
var a = 10; var b = 20; var linebreak = "\n"; console.log("(a == b) => "); result = (a == b); console.log(result); console.log(linebreak); console.log("(a < b) => "); result = (a < b); console.log(result); console.log(linebreak); console.log("(a > b) => "); result = (a > b); console.log(result); console.log(linebreak); console.log("(a != b) => "); result = (a != b); console.log(result); console.log(linebreak); console.log("(a >= b) => "); result = (a >= b); console.log(result); console.log(linebreak); console.log("(a <= b) => "); result = (a <= b); console.log(result); console.log(linebreak);
4、逻辑运算符
JavaScript支持以下逻辑运算符。
假设x
值为5
,y
值为6
。
序号 | 运算符和描述 |
1 | &&(逻辑与) 如果两个操作数都不为零,则条件为真。 例如: (A && B) 为true。 |
2 | || (逻辑或) 如果两个操作数中的任何一个不为零,则条件为真。 例如:(A || B) 是true。 |
3 | !(逻辑非) 反转其操作数的逻辑状态。如果条件为真,则逻辑非运算符将使其为假。 例如:!(A && B) 是false。 |
在 JavaScript 中实现逻辑运算符。例如,
var a = true; var b = false; var linebreak = "\n"; console.log("(a && b) => "); result = (a && b); console.log(result); console.log(linebreak); console.log("(a || b) => "); result = (a || b); console.log(result); console.log(linebreak); console.log("!(a && b) => "); result = (!(a && b)); console.log(result); console.log(linebreak);
5、位运算符
JavaScript 支持以下按位运算符 。
假设变量 x
为 2
,变量 y
为 3
,
序号 | 运算符和描述 |
1 |
它对其整数参数的每一位执行布尔与运算。 例如: (x & y) 是 2。 |
2 |
它对其整数参数的每一位执行布尔或运算。 例如: (x | y) 是 3。 |
3 |
它对其整数参数的每一位执行布尔异或运算。 异或意味着操作数一为真或操作数二为真,但不能同时为真。 例如: (x ^ y) 是 1。 |
4 |
它是一个一元运算符, 通过反转操作数中的所有位来进行操作。 例如: (~y) 是 -4。 |
5 |
它将第一个操作数中的所有位向左移动第二个操作数中指定的位数。新位用零填充。将一个值左移一位相当于乘以 2,将值移两个位置相当于乘以 4,以此类推。 例如: (x << 1) 是 4。 |
6 |
二元右移运算符。左操作数的值向右移动右操作数指定的位数。 例如: (x >> 1) 是 1。 |
7 |
这个操作符就像 >> 操作符一样,除了左移的位总是零。 例如: (x >>> 1) 是 1。 |
在 JavaScript 中实现按位运算符,例如,
var a = 2; // Bit presentation 10 var b = 3; // Bit presentation 11 var linebreak = "\n"; console.log("(a & b) => "); result = (a & b); console.log(result); console.log(linebreak); console.log("(a | b) => "); result = (a | b); console.log(result); console.log(linebreak); console.log("(a ^ b) => "); result = (a ^ b); console.log(result); console.log(linebreak); console.log("(~b) => "); result = (~b); console.log(result); console.log(linebreak); console.log("(a << b) => "); result = (a << b); console.log(result); console.log(linebreak); console.log("(a >> b) => "); result = (a >> b); console.log(result); console.log(linebreak);
6、赋值运算符
JavaScript 支持以下赋值运算符。
序号 | 运算符和描述 |
1 | =(简单赋值) 将右侧操作数的值分配给左侧操作数 例如: C = A + B 将 A + B 的值赋给 C |
2 | +=(加法和赋值) 它将右操作数添加到左操作数并将结果赋值给左操作数。 例如: C += A 等价于 C = C + A |
3 | -=(减法和赋值) 它从左操作数中减去右操作数,并将结果赋值给左操作数。 例如: C -= A 等价于 C = C - A |
4 | *=(乘法和赋值) 它将右操作数与左操作数相乘,并将结果赋值给左操作数。 例如: C *= A 等价于 C = C * A |
5 | /=(除法和赋值) 它将左操作数与右操作数相除,并将结果赋值给左操作数。 例如: C /= A 等价于 C = C / A |
6 | %=(模块和分配) 它使用两个操作数取模并将结果赋值给左操作数。 例如: C %= A 等价于 C = C % A |
注意:同样的逻辑也适用于位操作符,因此它们将变成<<=
、>>=
、>>=
、&=
、|=
和^=
。
在 JavaScript 中实现赋值运算符。例如,
var a = 33; var b = 10; var linebreak = "\n"; console.log("Value of a => (a = b) => "); result = (a = b); console.log(result); console.log(linebreak); console.log("Value of a => (a += b) => "); result = (a += b); console.log(result); console.log(linebreak); console.log("Value of a => (a -= b) => "); result = (a -= b); console.log(result); console.log(linebreak); console.log("Value of a => (a *= b) => "); result = (a *= b); console.log(result); console.log(linebreak); console.log("Value of a => (a /= b) => "); result = (a /= b); console.log(result); console.log(linebreak); console.log("Value of a => (a %= b) => "); result = (a %= b); console.log(result); console.log(linebreak);
7、其它运算符
两个在 JavaScript 中非常有用的运算符:条件运算符(?:
) 和typeof
运算符。
条件运算符 (? :)
条件运算符首先计算表达式的真值或假值,然后根据计算结果执行两个给定语句之一。
序号 | 操作员和说明 |
1 |
如果条件为真 |
了解条件运算符在 JavaScript 中的工作原理。例如,
var a = 10; var b = 20; var linebreak = "\n"; console.log ("((a > b) ? 100 : 200) => "); result = (a > b) ? 100 : 200; console.log(result); console.log(linebreak); console.log ("((a < b) ? 100 : 200) => "); result = (a < b) ? 100 : 200; console.log(result); console.log(linebreak);
运算符类型
typeof
运算操作是一元运算符是其单个操作数之前放置,其可以是任何类型的。它的值是一个字符串,指示操作数的数据类型。
typeof
运算符的返回值列表。
类型 | 由typeof返回的字符串 |
Number | "number" |
String | "string" |
Boolean | "boolean" |
Object | "object" |
Function | "function" |
Undefined | "undefined" |
Null | "object" |
实现typeof运算符。例如,
var a = 10;
var b = "String";
var linebreak = "\n";
result = (typeof b == "string" ? "B is String" : "B is Numeric");
console.log("Result => ");
console.log(result);
console.log(linebreak);
result = (typeof a == "string" ? "A is String" : "A is Numeric");
console.log("Result => ");
console.log(result);
console.log(linebreak);