美文网首页
"与" or "或"你了解多少

"与" or "或"你了解多少

作者: Sonwmarks | 来源:发表于2018-06-01 22:50 被阅读0次

    与或 你真的了解吗?

    && || 在表达式1和表达式2之间其实是技巧的,熟练了,秒答

    首先来看下&&(双与) X && Y  在这个表达式中首先计算X,并将其解释为一个布尔值:

    如果这个布尔值(X的布尔值)为false,那么返回false 不再计算Y,因为"与"的条件已经失效

    如果这个布尔值(X的布尔值)为true, 那么我们仍然不知道 X && Y 的值是真还是假,直到我们去计算Y ,并把它也解释为一个布尔值;不过有意思的是当X 为 true 时,整个将直接返回 Y

    再来看看 ||(双或) 在 X || Y 的时候,还是首先计算X并将其解释执行一个布尔值:

    如果这个布尔值(X的布尔值)为true 那么将返回X,不再计算Y 因为"或"的条件已经满足

    如果这个布尔值为false 那么我们仍然不知道X || Y 是真还是假,直到我们计算 Y, 并且也把它解释为一个执行的布尔值

    因此  0 || 1 的计算结果为true(1)

    表达式1 && 表达式2 和 表达式1 || 表达式2 只需要判断第一个表达式的值:

    ||: 第一个表达式为真 ,直接返回表达式1

    第一个表达式为假 ,直接返回表达式2

    &&: 第一个表达式为假 ,直接返回表达式1

    第一个表达式为真 ,直接返回表达式2

    故 简称: 或 真1 假2  与 假1 真2

    console.log(1 && false);  //与 假1 真2 false

    console.log(0 || NaN); //或 真1 假2 NaN

    console.log(null && undefined); //与 假1 真2 null

    console.log(false && null); //与 假1 真2 false

    console.log(undefined || 0); //或 真1 假2 0

    console.log(NaN || 1); //或 真1 假2 1

    console.log(1 && null); //与 假1 真2 null

    console.log(2 || NaN); //或 真1 假2 2

    console.log(3 && false); //与 假1 真2 false

    console.log(NaN || 0); //或 真1 假2 0

    console.log(undefined && 2); //与 假1 真2 undefined

    console.log(null && 3); //与 假1 真2 null

    console.log(false || 7); //或 真1 假2 7

    相关文章

      网友评论

          本文标题:"与" or "或"你了解多少

          本文链接:https://www.haomeiwen.com/subject/fvhlsftx.html