zoukankan      html  css  js  c++  java
  • js你不是的那些基础问题-布尔运算符

    1 且运算符(&&)

    且运算符(&&)往往用于多个表达式的求值

         它的运算规则是:如果第一个运算子的布尔值为true

      则返回第二个运算子的值(注意是值,不是布尔值);如果第一个运算子的布尔值为false

      则直接返回第一个运算子的值,且不再对第二个运算子求值。

    't' && '' // ""
    't' && 'f' // "f"
    't' && (1 + 2) // 3
    '' && 'f' // ""
    '' && '' // ""
    
    var x = 1;
    (1 - 1) && ( x += 1) // 0
    x // 1
    

      上面代码的最后一个例子,由于且运算符的第一个运算子的布尔值为false

      则直接返回它的值0,而不再对第二个运算子求值,所以变量x的值没变。

      

      这种跳过第二个运算子的机制,被称为“短路”。有些程序员喜欢用它取代if结构,

      比如下面是一段if结构的代码,就可以用且运算符改写。

    或运算符(||)

      或运算符(||)也用于多个表达式的求值。它的运算规则是:

      如果第一个运算子的布尔值为true,则返回第一个运算子的值,且不再对第二个运算子求值;

      如果第一个运算子的布尔值为false,则返回第二个运算子的值。

    't' || '' // "t"
    't' || 'f' // "t"
    '' || 'f' // "f"
    '' || '' // ""
    

      短路规则对这个运算符也适用。

    var x = 1;
    true || (x = 2) // true
    x // 1
    

    3 三元条件运算符(?:)

      三元条件运算符由问号(?)和冒号(:)组成,分隔三个表达式。

      它是 JavaScript 语言唯一一个需要三个运算子的运算符。

      如果第一个表达式的布尔值为true,则返回第二个表达式的值,否则返回第三个表达式的值。

    't' ? 'hello' : 'world' // "hello"
    0 ? 'hello' : 'world' // "world"
    

      

     

     

    文章内容转自 阮一峰老师 JavaScript教程 https://wangdoc.com/javascript/index.html

  • 相关阅读:
    LUA 数据比较BUG?????是不是BUG大佬帮看看
    win10 优化批处理
    android Studio 二维码扫一扫 使用精简过的zxing
    AppCompatActivity 去除标题栏
    java 继承 重写 重载 super关键字
    java构造方法私有化
    java代码块的理解
    java 理解main方法
    java面向对象基础static
    docker 安装 nginx
  • 原文地址:https://www.cnblogs.com/WernerWu/p/11347512.html
Copyright © 2011-2022 走看看