zoukankan      html  css  js  c++  java
  • js中的逻辑运算符

          $(function() {
                    if ("") {
                        console.info(" \"\" true");
                    } else {
                        console.info(" \"\" false");
                    }
                    if (0) {
                        console.info(" 0 true");
                    } else {
                        console.info(" 0 false");
                    }
                    if (undefined) {
                        console.info(" undefined true");
                    } else {
                        console.info(" undefined false");
                    }
                    // if (a) {//ReferenceError: aa is not defined
                    if ("a") {
                        console.info(" a true");
                    } else {
                        console.info(" a false");
                    }
                    if (null) {
                        console.info(" null true");
                    } else {
                        console.info(" null false");
                    }
                    console.info("time" || null);
                    //time
                    console.info("" || null);
                    //null
                    console.info(null || "");
                    //空字符串
                    var a;
                    console.info(a);
                    //undefined
                    a = a || [];
                    console.info(a);
                    //[]
                    /**
                     *
                     * undefined的含义其实是定义了一个引用,但是引用没有之上任何变量
                     * 例如:var a;  a的含义就是undefined、
                     *
                     * 但是如果你直接使用 aa, 没有 var aa; 那么浏览器会直接报错
                     * 火狐报的错是 ReferenceError: aa is not defined
                     * 也就是说if(aa){}  或者 aa = aa || []; 浏览器都会报错(引用错误)
                     *
                     * 但是,aa="string"; 这种使用方法是没有错误的!
                     *
                     */
                    //aa = "string";console.info(aa);-->string
                    console.info(aa);
                    //ReferenceError: aa is not defined
                });

    上面代码在火狐上产生的效果如下图:

    总结下来就是:

    在js 中, 空字符串、null、undefined、0 都代表false。

    在学习C++的时候,我们知道,逻辑运算符有“截断”(忘了叫什么名字了)的特性:或运算符||  当第一次遇见true的时候,就不在往下面执行了!

    那么在js中也只这样的。

      console.info("time" || null);//time    time代表true,后面就不执行了,返回time
      console.info("" || null);//null        "" 代表false,继续执行,返回null
      console.info(null || "");//空字符串      null 代表false,继续执行,返回""
                    
    a = a || [];
    那么这句话的意思就是 如果a未定义就创建一个数组对象!


  • 相关阅读:
    倒排索引
    线控的原理
    性格类型之ISFP艺术家型——有爱心的艺术工作者
    亚马逊面试题及解法
    关于过度设计的思考(zz)
    给Visual Studio 2010中文版添加Windows Phone 7模板
    MySQL性能优化zz
    上班玩游戏,老总是怎么知道的呢?
    基于AJAX的自动完成
    JavaScript在ASP.NET AJAX中的另类故事
  • 原文地址:https://www.cnblogs.com/yokoboy/p/2994231.html
Copyright © 2011-2022 走看看