zoukankan      html  css  js  c++  java
  • JS 逻辑运算符&&与||的运算

    下面代码的输出值是?

    alert(1&&2);

    正确的结果是 2.

    下面是逻辑运算符的说明:

    运算符示例说明
    逻辑与 (&&) expr1&&expr2 如果expr1 能转换成false则返回expr1,否则返回expr2. 因此, 在Boolean环境中使用时, 两个操作结果都为true时返回true,否则返回false.
    逻辑或 (||) expr1||expr2 如果expr1能转换成true则返回expr1,否则返回expr2. 因此,在boolean环境(在if的条件判断中)中使用时, 二者操作结果中只要有一个为true,返回true;二者操作结果都为false时返回false.
    逻辑非(!) !expr 如果单个表达式能转换为true的话返回false,否则返回true.

    #简介的说就是 【&&返回第一个false,否则结束后返回true】【||返回第一个true,否则结束返回false】【!返回相反】#

    能够转换为false的表达式有【false、""(空字符串)、0、NaN、null、undefined

    能够转化为true的值为【true、任何非空字符串、任何非零数字值(包括无穷大)、任何对象

    以上规则已经再次确认,摘自"javascript高级程序设计(第3版)"这本书

    也就是说在代码中,第一个值为1,类型是number,该值没有办法转化为false,于是返回第二个值也就是2,这样就可以理解了.

    2. 另外JS逻辑计算还有一个短路计算原则

    由于逻辑表达式的运算的顺序是从左到右,也可以用以下规则进行"短路"计算:

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

    3.一些简单逻辑运算例子理解

    (1)逻辑与

    a4=false && (3 == 4)  // f && f 结果为 false
    a5="Cat" && "Dog"     // t && t 结果为 Dog 
    a6=false && "Cat"     // f && t 结果为 false
    a7="Cat" && false     // t && f 结果为 false a8 = true && 4 && "aaa"; //结果为"aaa"
    (1)逻辑或
    o4=false || (3 == 4)  // f || f 结果为 false
    o5="Cat" || "Dog"     // t || t 结果为 Cat
    o6=false || "Cat"     // f || t 结果为 Cat(这个例子非常迷惑人)
    o7="Cat" || false     // t || f 结果为 Cat
  • 相关阅读:
    LeetCode1:Two Sum
    LeetCode127:Word Ladder II
    LeetCode126:Word Ladder
    LeetCode128:Longest Consecutive Sequence
    LeetCode129:Sum Root to Leaf Numbers
    LeetCode130:Surrounded Regions
    LeetCode132:Palindrome Partitioning II
    LeetCode131:Palindrome Partitioning
    2014腾讯实习生招聘武汉试题
    React:受控组件与非受控组件混用实战
  • 原文地址:https://www.cnblogs.com/yangsoon/p/6610100.html
Copyright © 2011-2022 走看看