javascript系列之运算符

一.欢迎来到我的酒馆

1.让我们看一个简单的表达式:1 + 2 = 3 。在这里1和2称为操作数,+ 被称为运算符。下面是javascript支持的运算符:

  • (Arithmetic operator)算数运算符。
  • (Comparison operator)比较运算符。
  • (Logical operator)逻辑运算符。
  • (Assignment operator)赋值运算符。
  • (Ternary operator)三目运算符。
    2.什么是运算符??
    在编程语言中,运算符是可以操作值的对象。例如:1 + 2 ,1和2是操作数,+ 是操作符。运算符可以帮助我们在操作数上执行数学上的、关系上、按位运算的、条件上的或逻辑上的计算。简而言之,运算符可以帮助我们执行各种计算操作。

二.算数运算符

javascript支持下面的算数运算符:
假定变量A为10,变量B为20,

No运算符
1+ 运算符。表示两个数相加。eg: A + B = 30
2- 运算符。从第一个数减去第二个数。 eg: A - B = -10
3* 运算符。表示两个数相乘。eg: A * B = 200
4/ 运算符。表示两个数相除。eg: A / B = 0.5
5% 运算符。表示两个数相除后的余数。eg: A % B = 10
6++ 运算符。自增;。eg: A++ = 10
7– 运算符。自减。eg: A --= 10

在代码中使用算数运算符:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script language="javascript" type="text/javascript">
        function printResult(result){
            document.write(result);
            document.write(linebreak);
        }
    </script>
</head>
<body>
    <script language="javascript" type="text/javascript">
        <!--
            let a = 33;
            let b = 10;
            let c = "Test";
            let linebreak = "<br/>";

            // a + b = 43
            document.write("a + b =");
            result = a + b;
            printResult(result);

            // a - b = 23
            document.write("a - b = ");
            result = a - b;
            printResult(result);

            // a * b = 330
            document.write("a * b = ");
            result = a * b;
            printResult(result);

            // a / b = 3.3
            document.write("a / b = ");
            result = a / b;
            printResult(result);

            // a % b = 3
            document.write("a % b = ");
            result = a % b;
            printResult(result);

            // a + b + c = 43Test
            document.write("a + b + c = ");
            result = a + b + c;
            printResult(result);

            // a++ = 33
            document.write("a++ = ");
            result = a++;
            printResult(result);

            //a-- = 34
            document.write("a-- = ");
            result = a--;
            printResult(result);
        //-->
    </script>
</body>
</html>

保存上面的代码,用浏览器打开:
在这里插入图片描述

三.比较运算符

javascript支持以下的比较运算符:
假定A的值为10,B的值为20,

No运算符和说明
1== 运算符。比较两个数是否相等,如果相等表达式的值为true。eg: (A == B) 返回fasle
2!= 运算符。比较两个数是否不相等,如果不相等表达式的值为true。eg: (A != B) 返回true
3> 运算符。比较运算符左边的数是否大于右边的数,如果是返回true。eg: (A > B) 返回fasle
4< 运算符。比较运算符左边的数是否小于右边的数,如果是返回true。eg: (A < B) 返回true
5>= 运算符。比较运算符左边的数是否大于等于右边的数,如果是返回true。eg: (A >= B) 返回false
6<= 运算符。比较运算符左边的数是否小于等于右边的数,如果是返回true。eg: (A <= B) 返回true

在代码中使用比较运算符:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script language="javascript" type="text/javascript">
        function printResult(result){
            document.write(result);
            document.write(linebreak);
        }
    </script>
</head>
<body>
    <script language="javascript" type="text/javascript">
        let num1 = 10;
        let num2 = 20;
        let linebreak = "<br/>";

        // num1 > num2 false
        document.write("(num1 > num2) => ");
        result = num1 > num2;
        printResult(result);

        // num1 < num2  true
        document.write("(num1 < num2) => ");
        result = num1 < num2;
        printResult(result);

        // num1 == num2 false
        document.write("(num1 == num2) => ");
        result = num1 == num2;
        printResult(result);

        // num1 != num2 true
        document.write("(num1 != num2) => ");
        result = num1 != num2;
        printResult(result);

        // num1 >= num2 false
        document.write("(num >= num2) => ");
        result = num1 >= num2;
        printResult(result);

        // num1 <= num2 true
        document.write("(num1 <= num2) => ");
        result = num1 <= num2;
        printResult(result);

    </script>
</body>
</html>

输出:
在这里插入图片描述

四.逻辑运算符

javascript支持以下的逻辑运算符:
假定变量A的值为true, B的值为false:

No运算符
1&& 逻辑与运算符。如果运算符两边非0,则表达式的值为true。eg: (A && B) 返回true
2|| 逻辑或运算符。如果运算符两边有一边非0,则表达式的值为true。eg: (A || B) 返回true
3! 逻辑非运算符。反转运算符的逻辑值。如果运算符的一边为true,则返回false。eg: !(A && B) 返回false

在代码中使用逻辑运算符:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script language="javascript" type="text/javascript">
        
        // 输出结果
        function printResult(result) {
            // document.write()函数用于向HTML文档输出一段字符串
            document.write(result);
            document.write(linebreak);
        }
    </script>
</head>
<body>
    <script language="javascript" type="text/javascript">
        let A = true;
        let B = false;
        let linebreak = "<br/>";

        document.write("(A && B) => ");
        result = A && B;
        printResult(result);

        document.write("(A || B) = > ");
        result = A || B;
        printResult(result);

        document.write("!(A && B) => ");
        result = !(A && B);
        printResult(result);

    </script>

</body>
</html>

保存上面的代码,使用浏览器打开:
在这里插入图片描述

五.按位运算符

1.javascript支持以下的按位运算符:
假定A的值为2,B的值为3,

No运算符
1& (AND)按位与运算符。将两个数作为操作数,并对两个数字的每个位执行AND操作,仅单两个位均为1的时候,结果才是1。
2| (OR)按位或运算符。将两个数作为操作数,并对两个数字的每个为执行OR操作,只要对位上有一个为1,结果就为1。
3^ (XOR)按位异或运算符。将两个数作为操作数,并对两个数字的每个位执行XOR操作,只要对位上不相同,结果就是1。
4~ 按位取反运算符。
5>> 右移运算符。
6<< 左移运算符。

2.按位与运算符

<script language="javascript" type="text/javascript">
    let A = 2;
    let B = 3;
    let linebreak = "<br/>";

    document.write("(A & B) is ");
    result = (A & B);
    document.write(result);
    document.write(linebreak);
</script>

result的值为2.
分析:
A的值为2,用二进制表示:0000 0010
B的值为3,用二进制表示:0000 0011
然后对每个位进行AND求值,只有当两个位上都是1的时候,结果才是1.
在这里插入图片描述

3.按位或运算符

<script language="javascript" type="text/javascript">
    let A = 2;
    let B = 3;
    let linebreak = "<br/>";

    document.write("(A | B) is ");
    result = (A | B);
    document.write(result);
    document.write(linebreak);
</script>

result的值为3:
分析:
A的值为2,用二进制表示:0000 0010
B的值为3,用二进制表示:0000 0011
然后对每个对位进行 | 求值,只要对位上有一个是1,结果就是1。
在这里插入图片描述
4.按位异或运算符

<script language="javascript" type="text/javascript">
    let A = 2;
    let B = 3;
    let linebreak = "<br/>";

    document.write("(A ^ B) is ");
    result = (A ^ B);
    document.write(result);
    document.write(linebreak);
</script>

result的值为1:
分析:
A的值为2,用二进制表示:0000 0010
B的值为3,用二进制表示:0000 0011
然后对每个对位执行 ^ 操作,只要两个对位数字不相同,结果就是1。
在这里插入图片描述
5.按位取反操作符

<script language="javascript" type="text/javascript">
    let A = 2;
    let B = 3;
    let linebreak = "<br/>";

    document.write("(~ A) is ");
    result = (~ A);
    document.write(result);
    document.write(linebreak);
</script>

result的结果为-4:
分析:
A的值为1,用二进制表示:0000 0010

5.2这里需要引入原码、反码和补码的概念。原码很好理解,就是对应的二进制。一个十进制转为二进制,得到的这个二进制即为原码。例如,2的二进制为:0000 0010,所以2的原码为: 0000 0010 。
二进制的最高位表示数据的正负:
在这里插入图片描述

5.3 原码、反码和补码概念
在这里插入图片描述

~ A 执行完按位取反操作后变为, 1111 1101,而计算机中,是以补码的形式存放数据的,因此要将取反操作后的数求补码,正数的原码,反码,补码都相同。负数的反码:最高位不变,其余位取反得到反码。负数的补码:在反码的基础上加1。
在这里插入图片描述

简而言之,对所有整数按位取反 = 本身的相反数 -1。

6.左移运算符

<script language="javascript" type="text/javascript">
    let A = 2;
    let B = 3;
    let linebreak = "<br/>";

    document.write("(A << 1) is ");
    result = (A << 1);
    document.write(result);
    document.write(linebreak);
</script>

result的值为:4
分析:
A=2,假设字长为8位,转换成二进制为:0000 0010,向左移一位,变成:0000 0100,即为4.

7.右移运算符

<script language="javascript" type="text/javascript">
    let A = 2;
    let B = 3;
    let linebreak = "<br/>";

    document.write("(A >> 1) is ");
    result = (A >> 1);
    document.write(result);
    document.write(linebreak);
</script>

result的值为:4
分析:
A=2,假设字长为8位,转换成二进制为:0000 0010,向右移一位,变成:0000 0001,即为1.

六.赋值运算符

javascript支持以下赋值运算符:

No运算符
1= 运算符。将 = 右边的数赋值给左边。eg: C = A + B.
2+= 运算符。将左边的数和右边的数相加,然后赋值给左边的数。eg: C +=A 等效于 C = C + A;
3-= 运算符。从左边的数减去右边的数,然后赋值给左边的数。eg: C -= A 等效于 C = C - A;
4*= 运算符。将左边的数乘以右边的数,然后赋值给左边的数。eg: C *= A 等效于 C = C * A;
5/= 运算符。将左边的数除以右边的数,然后赋值给左边的数。eg: C /=A 等效于 C = C / A;
6%= 运算符。对两个数取余,然后将结果赋值给左边的数。eg: C %= A 等效于 C = C % A;
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script language="javascript" type="text/javascript">
    
        function printResult(result){
        	// document.write()函数向HTML文档输入一段字符串
            document.write(result);
            document.write(linebreak);
        }
    </script>
</head>
<body>
    <script language="javascript" type="text/javascript">
        let A = 10;
        let B = 20;
        let linebreak = "<br/>";

        document.write("(A = B) => ");
        result = (A = B);
        printResult(result);

        document.write("(A += B) =>");
        result = (A += B);
        printResult(result);

        document.write("(A -= B) =>");
        result = (A -= B);
        printResult(result);

        document.write("(A *= B) =>");
        result = (A *= B);
        printResult(result);

        document.write("(A /= B) =>");
        result=(A /= B);
        printResult(result);

        document.write("(A %= B) =>");
        result = (A %= B);
        printResult(result);
    </script>
</body>
</html>

保存上面的代码,使用浏览器打开:
在这里插入图片描述

七.三目运算符

三目运算符首先计算表达式的布尔值,然后根据这个布尔值执行两个给定的其中一个语句。

No运算符
1? : 三目运算符。如果条件为真,执行第一个语句,否则执行第二个语句。

在代码中使用三目运算符:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script language="javascript" type="text/javascript">
        function printResult(result){
            //document.write()函数向HTML文档输入一段字符串
            document.write(result);
            document.write(linebreak);
        }

    </script>
</head>
<body>
    <script language="javascript" type="text/javascript">
        let A = 10;
        let B = 20;
        let linebreak = "<br/>";

        document.write("(A > B) ? 100 : 200 =>");
        result = (A>B) ? 100 : 200;
        printResult(result);

        document.write("(A < B) ? 100 : 200 =>");
        result = (A<B) ? 100 : 200;
        printResult(result);

    </script>
</body>
</html>

保存上面的代码,用浏览器打开:
在这里插入图片描述

八.typeof 运算符

typeof是一元运算符。typeof一元运算符可以放置在任何数据类型之前,它会按操作数的数据类型返回一个string。
下面是typeof运算符的返回值:

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

在代码中使用typeof运算符:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script language="JavaScript" type="text/javascript">
        function printResult(result){
            document.write(result);
        }
    </script>
</head>
<body>
    <script language="javascript" type="text/javascript">
        let name = "Michael";
        let num = 123;
        let linebreak = "<br/>";

        result = typeof name == "string" ?  "string" : "not string";
        document.write(result);
        document.write(linebreak);

        result = typeof num == "number" ? "number" : "string";
        document.write(result);
        document.write(linebreak);

        result = typeof printResult == "function" ? "function" : "not funvtion";
        document.write(result);
        document.write(linebreak);

    </script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值