zoukankan      html  css  js  c++  java
  • JavaScript运算符

    一、逻辑运算符

    逻辑运算符
        && || !
        * 其他类型转boolean:
           1. number:0或NaN为假,其他为真
           2. string:除了空字符串(""),其他都是true
           3. null&undefined:都是false
           4. 对象:所有对象都为true
    
    -------------------------------------------------
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>运算符</title>
        <script>
            //boolean
            var flag = true;
            document.write(flag + "<br>");
            document.write(!flag + "<br>");
            document.write("<hr>");
    
            //int
            var num = 3;
            document.write(!num+ "<br>")    //false
            document.write(!!num+ "<br>")   //true
    
            var num2 = 0;
            var num3 = NaN;
            document.write(!num2+ "<br>")   //true
            document.write(!!num + "<br>")  //true
            document.write(!num3+ "<br>")   //true
            document.write(!!num3+ "<br>")  //true
            document.write("<hr>");
    
            //string
            var str1 = "abc"
            var str2 = ""
            document.write(!!str1 + "<br>") //true
            document.write(!!str2 + "<br>") //false
            document.write("<hr>");
    
            //null undefined
            var obj = null;
            var obj2;
            document.write(!!obj + "<br>")  //false
            document.write(!!obj2 + "<br>") //false
            document.write("<hr>");
    
            var date = new Date()
            document.write(!!date + "<br>")
    
            //下面两个if是等价的
            if(obj != null && obj.length > 0) { //防止空指针异常
    
            }
    
            if(obj) {  //防止空指针异常
    
            }
    
        </script>
    
    </head>
    <body>
    
    </body>
    </html>


    二、三元运算

    三元运算符
        ? : 表达式
        var a = 3;
        var b = 4;
    
        var c = a > b ? 1:0;
        * 语法:
            * 表达式? 值1:值2;
            * 判断表达式的值,如果是true则取值1,如果是false则取值2;
    
    -----------------------------------------
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>三元运算符</title>
        <script>
            var a = 3;
            var b = 4;
    
            var c = a > b ? 1:0;
            alert(c)
        </script>
    </head>
    <body>
    
    </body>
    </html>


    三、一元运算符

    运算符
        1. 一元运算符:只有一个运算数的运算符
            ++,-- , +(正号)  
            * ++ --: 自增(自减)
                * ++(--) 在前,先自增(自减),再运算
                * ++(--) 在后,先运算,再自增(自减)
            * +(-):正负号
            * 注意:在JS中,如果运算数不是运算符所要求的类型,那么js引擎会自动的将运算数进行类型转换
                * 其他类型转number:
                    * string转number:按照字面值转换。如果字面值不是数字,则转为NaN(不是数字的数字)
                    * boolean转number:true转为1,false转为0
        2. 算数运算符
            + - * / % ...
    
        3. 赋值运算符
            = += -+....
    
    --------------------------------------
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>一元运算符</title>
        <script>
            var num = 3;
            var a = ++ num;
            document.write(num); //4
            document.write(a);
            document.write("<hr>")
    
            var b = +"abc"
            alert(typeof (b)) //number类型
            alert(b + 1)  //NaN
            document.write("<hr>")
    
            var flag  = + true
            var f2 = + false
            document.write(typeof (flag) + "<br>")  //number
            document.write(flag + "<br>")  //1
            document.write(f2 + "<br>")  //0
        </script>
    </head>
    <body>
    
    </body>
    </html>


    四、算术&比较运算符

    算数运算符
        + - * / % ...
    
    ------------------------------
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>算术运算符</title>
        <script>
            var a = 3;
            var b = 4;
    
            document.write(a+b + "<br>")  //7
            document.write(a-b + "<br>")  //-1
            document.write(a*b + "<br>")  //12
            document.write(a/b + "<br>")  //0.75
            document.write(a%b + "<br>")  //3
        </script>
    </head>
    <body>
    
    </body>
    </html>
    
    
    
    
    比较运算符
        > < >= <= == ===(全等于)
        * 比较方式
          1. 类型相同:直接比较
              * 字符串:按照字典顺序比较。按位逐一比较,直到得出大小为止。
          2. 类型不同:先进行类型转换,再比较
              * ===:全等于。在比较之前,先判断类型,如果类型不一样,则直接返回false
    
    ------------------------------
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>比较运算符</title>
        <script>
            document.write((3 > 4) + "<br>")  //false
            document.write(("abc" < "acd") + "<br>")  //true
            document.write(("123" == 123) + "<br>")  //true
            document.write(("123" === 123) + "<br>")  //false
        </script>
    </head>
    <body>
    
    </body>
    </html>
  • 相关阅读:
    BZOJ 1191 HNOI2006 超级英雄hero
    BZOJ 2442 Usaco2011 Open 修建草坪
    BZOJ 1812 IOI 2005 riv
    OJ 1159 holiday
    BZOJ 1491 NOI 2007 社交网络
    NOIP2014 D1 T3
    BZOJ 2423 HAOI 2010 最长公共子序列
    LCA模板
    NOIP 2015 D1T2信息传递
    数据结构
  • 原文地址:https://www.cnblogs.com/weiyiming007/p/11511433.html
Copyright © 2011-2022 走看看