zoukankan      html  css  js  c++  java
  • 聊聊js运算符 ‘与(&&)’和‘ 或(||)’

    一,先来几个问题,看给位能都全部答对。

         

      var objA1 = {x:1};
    
            var objA2 = {x:2};
    
            var resultA = objA1 && objA2;
    
            //请问resultA是什么??
    
            var objB1 = { x: 1 };
    
            var objB2 = null;
    
            var resultB = objB1 && objB2;
    
            //请问resultB是什么?
    
            var objC1 = null;
    
            var objC2 = undefined;
    
            var resultC = objC1 && objC1;
    
            //请问resultC是什么?

    二,上面的答案

      1,objA2

      2,objB2

      3,null

    如果各位有没有答对的,请继续往下看。

    三,javascript 运算符与(&&)或(||)’简单总结

       1,当运算符两边都是bool值时。

             这个无需多说,地球人都知道。

       2,当运算符是两边是真值(假值)时。

    • 关于真值和假值,不知道的可以百度一下,我这里先简要介绍一下,js中除了:false,”0,‘’(空字符串),null,undefinded,NAN ”六个是假值,其他的都是真值,这里需注意: '0'、'null'、'false'、{}、[]也都是真值。在代码中经常看到如下代码:
    • var o = { x: "test" };
        if (o) {
             document.writeln(o.x);//因为os是真值,所以这里输出:test;
          };
    • 表达式“&&”左右都是真值:返回右边的值
    • 表达式“&&”左右有一个是假值是:返回假值
    • 表达式“&&”左右都是假值:返回左边值
    • 表达式“||”左右都是真值,返回左边操的值
    • 表达式“||”左右有一个是假值,返回真值
    • 表达式“||”左右都是假值,返回右边的值

    四,运算符与(&&)或(||)其他总结

      1, “&&”的行为有时称谓‘短路’,我们偶尔也会看到一些代码利用了这些特性来又条件的执行代码,例如下面的两行代码是完全等价的。

     if (a==b) {
                test();//当a和b相同时,执行test();
            }
    
      (a == b) && test();//同上

    2,当“&&”右侧的表达式有副作用时(赋值,递增,函数调用表达式)要格外小心,因为这些带有副作用的表达式的执行依赖于左侧操作数的计算结果,

  • 相关阅读:
    NTP时间同步
    《暗时间》
    寻找字典公共键
    maven pom.xml的execution报错
    maven安装scala插件
    html 和xml
    sparkstreaming+kafka
    zookeeper错误Error contacting service. It is probably not running.
    eclipse开发hive2程序
    eclipse开发hbase程序
  • 原文地址:https://www.cnblogs.com/wangjun1234/p/4421895.html
Copyright © 2011-2022 走看看