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

与或 你真的了解吗?

&& || 在表达式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


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,199评论 0 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,962评论 19 139
  • 1、使用typeof bar ===“object”来确定bar是否是一个对象时有什么潜在的缺陷?这个陷阱如何避免...
    深海鲫鱼堡阅读 669评论 1 1
  • 前言 最先接触编程的知识是在大学里面,大学里面学了一些基础的知识,c语言,java语言,单片机的汇编语言等;大学毕...
    oceanfive阅读 3,150评论 0 7
  • “阿贵,带小姐走。” “是,少爷。” 只见一个舞厅的...
    A照亮大叔的笔呢阅读 459评论 0 2