JavaScript运算符


让我们来看看一个简单的表达式4+5等于9。这里4和5被称为操作数,'+'被称为运算符。JavaScript支持以下类型的运算符:

  • 算术运算符

  • 比较运算符

  • 逻辑(或关系)运算符

  • 赋值运算符

  • 条件(或三元)运算符

让我们一一看一下所有运算符。

算术运算符


JavaScript支持以下算术运算符:

假设变量A为10,变量B为20,则:

序号.运算符和说明
1

+(加法)

加两个操作数

Ex:A + B等于30

2

-(减法)

从第一个减去第二个操作数

Ex:A-B等于-10

3

*(乘法)

将两个操作数相乘

Ex:A * B会给200

4

/ (除)

用分子除以分母

Ex:B / A等于2

5

%(模)

输出整数除法的余数

Ex:B%A等于0

6

++(自增)

将整数值加1

Ex:A ++等于11

7

--(自减)

将整数值减一

Ex:A--等于9

注意:加法运算符(+)适用于数字和字符串。例如“ a” + 10将得到“ a10”。

以下代码显示了如何在JavaScript中使用算术运算符。

<html>
    <body>
   
        <script type = "text/javascript">
            <!--
                var a = 33;
                var b = 10;
                var c = "Test";
                var linebreak = "<br />";
         
                document.write("a + b = ");
                result = a + b;
                document.write(result);
                document.write(linebreak);
         
                document.write("a - b = ");
                result = a - b;
                document.write(result);
                document.write(linebreak);
         
                document.write("a / b = ");
                result = a / b;
                document.write(result);
                document.write(linebreak);
         
                document.write("a % b = ");
                result = a % b;
                document.write(result);
                document.write(linebreak);
         
                document.write("a + b + c = ");
                result = a + b + c;
                document.write(result);
                document.write(linebreak);
         
                a = ++a;
                document.write("++a = ");
                result = ++a;
                document.write(result);
                document.write(linebreak);
         
                b = --b;
                document.write("--b = ");
                result = --b;
                document.write(result);
                document.write(linebreak);
            //->
        </script>
      
        Set the variables to different values and then try...
    </body>
</html>
a + b = 43
a - b = 23
a / b = 3.3
a % b = 3
a + b + c = 43Test
++a = 35
--b = 8
Set the variables to different values and then try...

比较运算符


JavaScript支持以下比较运算符:

假设变量A为10,变量B为20,则:

序号.运算符和说明
1

= =(等于)

检查两个操作数的值是否相等,如果是,则条件为真。

Ex:(A == B)为假。

2

!=(不等于)

检查两个操作数的值是否相等,如果值不相等,则条件为真。

Ex:(A!= B)为真。

3

>(大于)

检查左操作数的值是否大于右操作数的值,如果是,则条件变为true。

Ex:(A> B)为假。

4

<(小于)

检查左操作数的值是否小于右操作数的值,如果是,则条件为true。

Ex:(A <B)为真。

5

> =(大于或等于)

检查左操作数的值是否大于或等于右操作数的值,如果是,则条件变为true。

Ex:(A> = B)为假。

6

<=(小于或等于)

检查左操作数的值是否小于或等于右操作数的值,如果是,则条件为true。

Ex:(A <= B)为真。

以下代码显示了如何在JavaScript中使用比较运算符。

<html>
    <body>
        <script type = "text/javascript">
            <!--
                var a = 10;
                var b = 20;
                var linebreak = "<br />";
      
                document.write("(a == b) => ");
                result = (a == b);
                document.write(result);
                document.write(linebreak);
         
                document.write("(a < b) => ");
                result = (a < b);
                document.write(result);
                document.write(linebreak);
         
                document.write("(a > b) => ");
                result = (a > b);
                document.write(result);
                document.write(linebreak);
         
                document.write("(a != b) => ");
                result = (a != b);
                document.write(result);
                document.write(linebreak);
         
                document.write("(a >= b) => ");
                result = (a >= b);
                document.write(result);
                document.write(linebreak);
         
                document.write("(a <= b) => ");
                result = (a <= b);
                document.write(result);
                document.write(linebreak);
            //->
        </script>
        Set the variables to different values and different operators and then try...
    </body>
</html>
(a == b) => false 
(a < b) => true 
(a > b) => false 
(a != b) => true 
(a >= b) => false 
a <= b) => true
Set the variables to different values and different operators and then try...

逻辑运算符


JavaScript支持以下逻辑运算符:

假设变量A为10,变量B为20,则:

序号.运算符和说明
1

&&(逻辑与)

如果两个操作数都不为零,则条件变为true。

Ex:(A && B)为真。

2

|| (逻辑或)

如果两个操作数中的任何一个都不为零,则条件变为true。

Ex:(A || B)为真。

3

! (逻辑非)

反转其操作数的逻辑状态。如果条件为真,则逻辑非运算符会将其设置为假。

Ex:! (A && B)为假。

尝试以下代码,以了解如何在JavaScript中实现逻辑运算符。

<html>
    <body>
        <script type = "text/javascript">
            <!--
                var a = true;
                var b = false;
                var linebreak = "<br />";
      
                document.write("(a && b) => ");
                result = (a && b);
                document.write(result);
                document.write(linebreak);
         
                document.write("(a || b) => ");
                result = (a || b);
                document.write(result);
                document.write(linebreak);
         
                document.write("!(a && b) => ");
                result = (!(a && b));
                document.write(result);
                document.write(linebreak);
            //->
        </script>
        <p>Set the variables to different values and different operators and then try...</p>
    </body>
</html>
(a && b) => false 
(a || b) => true 
!(a && b) => true
Set the variables to different values and different operators and then try...

按位运算符


JavaScript支持以下按位运算符:

假设变量A为2,变量B为3,则:

序号.运算符和说明
1

&(按位与)

它对其整数参数的每一位执行布尔“与”运算。

Ex:(A和B)为2。

2

| (按位或)

它对其整数参数的每一位执行布尔或运算。

Ex:(A | B)为3。

3

^(按位异或)

它对其整数参数的每一位执行布尔异或运算。异或表示一个操作数为true或两个操作数为true,但不是两个都为真。

Ex:(A ^ B)为1。

4

〜(按位不)

它是一元运算符,通过反转操作数中的所有位进行操作。

Ex:(〜B)为-4。

5

<<(左移)

它将第一个操作数中的所有位向左移动第二个操作数中指定的位数。新位填充零。将值左移一个位置等同于将其乘以2,将两个位置左移则等同于乘以4,依此类推。

Ex:(A << 1)是4。

6

>>(右移)

二进制右移运算符。左操作数的值向右移动右操作数指定的位数。

Ex:(A >> 1)为1。

7

>>>(右移零)

该运算符类似于>>运算符,不同之处在于,向左移的位始终为零。

Ex:(A >>> 1)为1。

尝试使用以下代码在JavaScript中实现按位运算符。

<html>
    <body>
        <script type = "text/javascript">
            <!--
                var a = 2; //位演示10
                var b = 3; //位演示11
                var linebreak = "<br />";
         
                document.write("(a & b) => ");
                result = (a & b);
                document.write(result);
                document.write(linebreak);
         
                document.write("(a | b) => ");
                result = (a | b);
                document.write(result);
                document.write(linebreak);
         
                document.write("(a ^ b) => ");
                result = (a ^ b);
                document.write(result);
                document.write(linebreak);
         
                document.write("(~b) => ");
                result = (~b);
                document.write(result);
                document.write(linebreak);
         
                document.write("(a << b) => ");
                result = (a << b);
                document.write(result);
                document.write(linebreak);
         
                document.write("(a >> b) => ");
                result = (a >> b);
                document.write(result);
                document.write(linebreak);
            //->
        </script>
        <p>Set the variables to different values and different operators and then try...</p>
    </body>
</html>
(a & b) => 2 
(a | b) => 3 
(a ^ b) => 1 
(~b) => -4 
(a << b) => 16 
(a >> b) => 0
Set the variables to different values and different operators and then try...

赋值运算符


JavaScript支持以下赋值运算符:

序号.运算符和说明
1

=(赋值)

将值从右侧操作数分配到左侧操作数

Ex:C = A + B会将A + B的值赋给C

2

+ =(加赋值)

它将右操作数添加到左操作数,并将结果分配给左操作数。

Ex:C + = A等于C = C + A

3

:=(减赋值)

它从左侧操作数中减去右侧操作数,并将结果分配给左侧操作数。

Ex:C-= A等效于C = C-A

4

* =(乘赋值)

它将右操作数与左操作数相乘,并将结果分配给左操作数。

Ex:C * = A等效于C = C * A

5

/ =(除赋值)

它将左操作数除以右操作数,并将结果分配给左操作数。

Ex:C / = A等效于C = C / A

6

%=(模赋值)

它使用两个操作数取模,然后将结果分配给左操作数。

Ex:C%= A等于C = C%A

注意:相同的逻辑适用于按位运算符,因此它们将变得像<< =,>> =,>> =,&=,| =和^ =。

尝试使用以下代码在JavaScript中实现赋值运算符。

<html>
    <body>
        <script type = "text/javascript">
            <!--
                var a = 33;
                var b = 10;
                var linebreak = "<br />";
         
                document.write("Value of a => (a = b) => ");
                result = (a = b);
                document.write(result);
                document.write(linebreak);
         
                document.write("Value of a => (a += b) => ");
                result = (a += b);
                document.write(result);
                document.write(linebreak);
         
                document.write("Value of a => (a -= b) => ");
                result = (a -= b);
                document.write(result);
                document.write(linebreak);
         
                document.write("Value of a => (a *= b) => ");
                result = (a *= b);
                document.write(result);
                document.write(linebreak);
         
                document.write("Value of a => (a /= b) => ");
                result = (a /= b);
                document.write(result);
                document.write(linebreak);
         
                document.write("Value of a => (a %= b) => ");
                result = (a %= b);
                document.write(result);
                document.write(linebreak);
            //->
        </script>
        <p>Set the variables to different values and different operators and then try...</p>
    </body>
</html>
Value of a => (a = b) => 10
Value of a => (a += b) => 20 
Value of a => (a -= b) => 10 
Value of a => (a *= b) => 100 
Value of a => (a /= b) => 10
Value of a => (a %= b) => 0
Set the variables to different values and different operators and then try...

杂项运算符


我们将在这里讨论两个在JavaScript中非常有用的运算符:条件运算符(?:)和类型运算符.

条件运算符(?:)

条件运算符首先对表达式的真值或假值求值,然后根据求值结果执行两个给定语句之一。

序号.运算符和说明
1

? :(视情况而定)

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

尝试以下代码,以了解条件运算符在JavaScript中的工作方式。

<html>
    <body>
        <script type = "text/javascript">
            <!--
                var a = 10;
                var b = 20;
                var linebreak = "<br />";
         
                document.write ("((a > b) ? 100 : 200) => ");
                result = (a > b) ? 100 : 200;
                document.write(result);
                document.write(linebreak);
         
                document.write ("((a < b) ? 100 : 200) => ");
                result = (a < b) ? 100 : 200;
                document.write(result);
                document.write(linebreak);
            //->
        </script>
        <p>Set the variables to different values and different operators and then try...</p>
    </body>
</html>
((a > b) ? 100 : 200) => 200 
((a < b) ? 100 : 200) => 100
Set the variables to different values and different operators and then try...

运算符类型


typeof运算符是一元运算符,位于其单个操作数之前,该运算数可以是任何类型。它的值是一个字符串,指示操作数的数据类型。

typeof 如果运算符的操作数是数字,字符串或布尔值,则其运算结果为“数字”,“字符串”或“布尔值”,并根据评估结果返回true或false。

这是列表的返回值的列表typeof运算符。

类型由typeof返回的字符串
Number"number"
String"string"
Boolean“boolean”
Object"object"
Function“function”
Undefined“undefined”
Null"object"

以下代码显示了如何实现typeof运算符。

<html>
    <body>
        <script type = "text/javascript">
            <!--
                var a = 10;
                var b = "String";
                var linebreak = "<br />";
         
                result = (typeof b == "string" ? "B is String" : "B is Numeric");
                document.write("Result => ");
                document.write(result);
                document.write(linebreak);
         
                result = (typeof a == "string" ? "A is String" : "A is Numeric");
                document.write("Result => ");
                document.write(result);
                document.write(linebreak);
            //->
        </script>
        <p>Set the variables to different values and different operators and then try...</p>
    </body>
</html>
Result => B is String 
Result => A is Numeric
Set the variables to different values and different operators and then try...