zoukankan      html  css  js  c++  java
  • javascript中的&&与||的用法

     var x = 3 || null || undefined;
        alert(x)    // 3
    
        var y = 3&&NaN&&5;
        alert(y);  //NaN

    以上 x,y并没有像我们想象中返回的是进行布尔运算,返回的是我们认为的true,false.

    布尔假值:0null""undefinedNaN

    其实这种特性叫短路求值&& 会返回第一个假值(0null""undefinedNaN),而 || 则会返回第一个真值。

    所以 && 有时候会用来代替 if (expression) doSomething()转成 && 方式就是 expression && doSomething()

    而 || 比较用来在函数中设置默认值,比如

     
    function doSomething(arg1, arg2, arg3) {
        arg1 = arg1 || 'arg1Value';
        arg2 = arg2 || 'arg2Value';
    }
    
    /*
    不过还需要看具体的使用场景,就比如如果要求 doSomething() 传入的 arg1 为一个数值,则上面的写法就会出现问题(在传入 0 的时候被认为是一个假值而使用默认值)。
    
    */

    &&操作结果

    • 如果一个运算数是对象,另一个是 Boolean 值,返回该对象

    • 如果两个运算数都是对象,返回第二个对象

    • 如果某个运算数是 null,返回 null

    • 如果某个运算数是 NaN,返回 NaN

    ||操作结果

    • 如果一个运算数是对象,并且该对象左边的运算数值均为 false,则返回该对象

    • 如果两个运算数都是对象,返回第一个对象

    • 如果最后一个运算数是 null,并且其他运算数值均为 false,则返回 null

    • 如果最后一个运算数是 NaN,并且其他运算数值均为 false,则返回 NaN

  • 相关阅读:
    Memcached安装
    linux 安装telnet
    varnish应用
    linux 安装apache
    varnishlog、Varnishstat详解
    varnish CLI管理
    varnish 子程序流程
    python3 cms识别类
    python3 fofa爬取类
    每日健康打卡
  • 原文地址:https://www.cnblogs.com/qianxunpu/p/8037988.html
Copyright © 2011-2022 走看看