zoukankan      html  css  js  c++  java
  • &&和||的操作符妙用(javascript)

    前言

    &&逻辑与和||逻辑或,它们既可以返回一个布尔值,又可以返回指定操作数的值,这个值是非布尔型的。

    MDN api参考

    Section1 布尔运算

    首先,我们明确一下基础知识。

    能够转换为false的表达式有:

    • null
    • NaN
    • 0
    • 空字符串("");
    • undefined

    控制台测试代码:

    同时,要注意,空数组转换为布尔值,是true哦。

    那么接下来,我们看它们的运算规则,逻辑表达式是从左往右计算,它们都是短路运算的操作符。短路运算的原理当有多个表达式时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值。如下:

    • false && (anything) 短路计算的结果为假。
    • true || (anything) 短路计算的结果为真。

     逻辑与&&运算符的示例:

    最后一个示例,如果第一个值是false,那么直接返回false。

      逻辑或||运算符的示例:

    最后一个示例,如果第一个值是true,那么直接返回true。

    Section2 返回指定操作数

     基本的布尔操作完了之后,我们来看一看&&和||的进阶用法。这基于它们能做非布尔型操作数的运算。

    逻辑与&&示例

    第一个操作数转换后的逻辑值为true,那么返回第二个操作数的值。如果第一个操作数转换后的逻辑值为False,当前直接返回第一个操作数。

    如果有多个操作数呢,当然是从左到右一个一个计算。

    逻辑或||示例

    如果第一个操作数的逻辑值为true,那么返回第一个操作数。如果第一个操作数的逻辑值为False,那么返回第二个操作数


  • 相关阅读:
    头插法链表的基本操作:创建空链表,插入结点,遍历链表,求链表长度,查找结点,删除结点
    尾插法链表拆分
    头插法链表拆分
    尾插法创建链表
    头插法创建链表
    二维数组45度反斜线扫描分析。
    [LeetCode] Binary Search Tree Iterator | 二叉查找树迭代器
    只用递归翻转栈
    [LeetCode] Wiggle Sort II | 摆动排序
    今天回归刷题的日子
  • 原文地址:https://www.cnblogs.com/chenmeng2062/p/9952582.html
Copyright © 2011-2022 走看看