运算符用于数据值,运算符包括算术运算符(如加号和减号)、位运算符、关系运算符和相等运算符等。运算符(也叫操作符),JavaScript的运算符适用于很多值,例如字符串、数字值、布尔值,甚至对象。在应用于对象时,相应的运算符会调用对象的valueOf()和(或)toString()方法,来取得可以操作的值。本文主要介绍JavaScript 运算符。

1、运算符介绍

取一个简单的表达式2 + 3 = 5。这里2和3被称为操作数,而"+"被称为操作符。JavaScript支持以下类型的操作符。

  • 算术运算符
  • 比较运算符
  • 逻辑(或关系)操作符
  • 赋值操作符
  • 条件(或三元)操作符

2、算术运算符

JavaScript支持以下算术运算符

假设变量x10,变量y20

序号

运算符和描述

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值为5y值为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值为5y值为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 支持以下按位运算符 。

假设变量 x2,变量 y3

序号

运算符和描述

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

?:(有条件)

如果条件为真?然后值 X:否则值 Y

了解条件运算符在 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);

推荐文档