JavaScript逻辑运算符中的"||"和"&&"

Javascript学习笔记:比较 逻辑或“||”和逻辑与“&&”运算符 逻辑与&&: 如果第一个操作数是 true(或者能够转为 true),计算结果为第二个操作数; 如果第一个操作数是 false,结果就是 false(短路计算); 对于一些特殊数值不遵循以上规则。 可以理解为:若运算的第一个操作数为true(真值),则返回第二操作数,反之则返回第一操作数。 <script type="text/javascript"> var a = [1,2,3]; var b = "hello"; var obj = new Object(); v 阅读详情

javascript逻辑运算符“||”和“&&”

一、先来说说||(逻辑或),从字面上来说,只有前后都是false的时候才返回false,否则返回true。

alert(true||false);    // true
alert(false||true);    // true
alert(true||true);     // true
alert(false||false);    // false

但是,从深层意义上来说的话,却有另一番天地,试下面代码

alert(0||1);

显然,我们知道,前面0意味着false,而后面1意味着true,那么上面的结果应该是true,而事实返回的结果是1。再看下面代码:

alert(2||1);

我们知道,前面2是true,后面1也是true,那返回结果又是什么呢?测试结果是2,继续看:

alert('a'||1);

同样,前面’a’是true,后面1也是true;测试结果是’a’,下面

alert(''||1);

由上,我们知道前面”是false,后面1是true,而返回结果是1。再看下面

alert('a'||0);

前面’a’是true,而后面0是false,返回结果是’a’,继续下面

alert('a'||'b');

前面’a’是true,后面’b’是false,返回结果是’a’,我们继续下面

alert(''||0);

前面”是false,后面0同样是false,返回结果是0

alert(0||'');

前面0是false,后面”是false,返回结果是”

这就意味

1、只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值。

2、只要“||”前面为true,不管“||”后面是true还是false,都返回“||”前面的值。


二、下面说说&&(逻辑与),从字面上来说,只有前后都是true的时候才返回true,否则返回false。

alert(true&&false);    // false
alert(true&&true);    // true
alert(false&&false);    // false
alert(false&&true);    // false

然后,根据上面经验,我们看看“&&”号前后,不单单是布尔类型的情况。

alert(''&&1);

结是返回”,“&&”前面”是false,后面是1是true。

alert(''&&0);

结是返回”,“&&”前面”是false,后面是0也是false。

alert('a'&&1);

结是返回1,“&&”前面”a是true,后面是1也是true。

alert('a'&&0);

结是返回0,“&&”前面”a是true,后面是0是false。

alert('a'&&'');

结是返回”,“&&”前面”a是true,后面是”是false。

alert(0&&'a');

结是返回0,“&&”前面”0是false,后面是’a’是true。

alert(0&&'');

结是返回0,“&&”前面”0是false,后面是”也是false。

这意味着

1、只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;

2、只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;

让我们总结一下:

1、只要“||”前面为false,无论“||”后面是true还是false,结果都返回“||”后面的值。

2、只要“||”前面为true,无论“||”后面是true还是false,结果都返回“||”前面的值。

3、只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;

4、只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;

由上两个测试可知,逻辑运算符,“||”和“&&”都是遵行短路原则,只要确定符号前面的真假,既可确定返回值。

需要说明的是“&&”的优先级是高于“||”的,下面测试:

alert(1||'a'&&2);

返回结果是1。

根据反证原理,我们假设“||”的优先级不低于“&&”(这里只所以用“不低于”,是为了同时证明等级相同的情况)。

根据上面我们得出的结论(1),(1||’a’)将返回前面的值1,(1&&2)根据结论(4)应该返回后面的值2。这显然不对,由此可知“&&”的优先级是高于“||”的。

宽带阻抗匹配的工程实现-第一步,端口驻波仿真 其实阻抗匹配我工作以来经常说,也经常做,但是基本上都是直接在印制板上进行调试。现在想先用仿真软件直接设计出来,才发现很多东西嘴上说容易,想做出来太难了。所以准备写一些文章,记录一下碰到的问题。 阅读详情

相关推荐

Paypal开发者中心获取“ClientId”和“ClientSecret”参数

正式环境设置 1、登录到 paypal开发者中心 网址:https://developer.paypal.com/developer/ 点击右上角登录按钮登录 2、左侧栏 - 我的应用程序和凭证 - 点击“创建新应用” 新注册的paypal账号,需要进行邮箱验证,验证通过后,需要等待一段时间(或重新登录),才会出现相关设置项位置 验证邮箱通过后,点击创建新应用 3、按提示填写,保存创建应用 4、点击刚创建的应用进入应用详情页 5、应用详情页获得网站开发人员所需要的“ClientId”和“Client

龚清林的博客 1万+

java 里的逻辑运算符,与(&)或(|)非(~)和异或(^)

package tablejava;public class AndOr2 { public static void main(String[] args) { int and1=7; int and2=1; int or1=7; int or2=1; int not=7; int xor1=7; int xor2=1;

Don't rush and never settle. If it's meant to be, it will be. 4509

组态王通过以太网与西门子S7-200 SMART PLC通讯案例详解

通过以上步骤,我们成功实现了组态王与西门子S7-200 SMART PLC的以太网通讯。这一技术不仅提高了工业自动化系统的灵活性和可靠性,还为初学者提供了一个实用的学习案例。希望本文能帮助您快速掌握组态王与西门子S7-200 SMART PLC的通讯技术。如有任何疑问,欢迎留言讨论!

2401_88785500的博客 2004

javascript逻辑运算符“||”和“&&”

javascript逻辑运算符“||”和“&&” 一、先来说说||(逻辑或),从字面上来说,只有前后都是false的时候才返回false,否则返回true。 alert(true||false); // truealert(false||true); // truealert(true||true); // truealert(false||fal

ranruci的专栏 213

threekingdoms.txt中文三国演义下载及实现人物出场统计

threekingdoms.txt全文下载:https://python123.io/resources/pye/threekingdoms.txt CalThreeKingdomsV1.py: #CalThreeKingdomsV1.py import jieba txt = open("threekingdoms.txt", "r", encoding = "utf-8").read() words = jieba.lcut(txt) counts = {} for word in words:

ZYYRWish_97的博客 1万+

ZXDoc工业级CAN总线仿真工具全解析与应用实践

CAN总线作为现代工业通信的核心协议,其仿真技术是汽车电子和工业控制领域的关键支撑。通过物理层信号模拟、协议层报文解析和应用层人机交互的三维仿真,开发者能够构建完整的硬件在环测试环境。ZXDoc作为工业级仿真工具,集成了DBC工程化管理、HMI面板设计和自动化测试脚本等核心功能,特别适用于ECU开发、产线验证等场景。工具支持ISO11898标准协议,提供错误帧注入、负载压力测试等高级特性,结合Python API可实现复杂测试用例的自动化执行。在新能源车VCU测试等实践中,通过优化采样点等参数配置,显著提升

weixin_30096975的博客 471

JavaScript逻辑运算符“&&”和“||”短路原则的应用

文章出自个人博客https://knightyun.github.io/2018/06/01/js-logic-compute,转载请申明 逻辑运算符 在Javascript中,有逻辑运算符 与 &amp;amp;&amp;amp;, 或 ||, 非 !,常在条件句或循环中进行逻辑判断。 例如: var a = 1, b = 1, c = 2; if (a = b &amp;amp;&amp;amp; (b ...

knight-yun的博客 2020

SAP ERP销售应收&成本科目确定

ERP作为业财一体软件,其中最核心的就是业务与财务模块的自动集成,无需财务进行手工做账,提高工作效率的同时降低人工操作产生的误差。今天浅浅的分享一下SD模块生成会计凭证时,借贷项确定的系统配置。一般项目上借贷项、科目都有FICO提供,但是具体的集成配置是在SD这边。

weixin_43657667的博客 1569

JS之逻辑中断(短路运算)

1.表达式1 || 表达式2如果表达式1 为真 返回表达式1如果表达式1 为假 返回表达式2 var num = 1 || 2; console.log(num); 2.表达式1 && 表达式2如果表达式1为真,判断表达式2 是否为真 若为真 则返回表达式2 若为假 则返回表达式2如果表达式1为假 直接返回表达式1 // v...

247

5实践报告撰写

一 项目流程 明确标准 确定分析目标 寻找分析数据 清洗数据 描述性分析 诊断性分析 提出建议 撰写报告 二 确定分析目标 什么是你感兴趣的? 什么是你熟悉的? 什么是你擅长的? 1 电商零售行业 商品销量分析 价格分析 评价分析 ...... 2 自媒体行业 广告投放力度分析 广告投放回报分析 不同类型的产品分析 ...... 3 金融行业 股票价格分析 信贷业务违约分析 客户画像分析 ...... ...

waywardG的博客 2832

Transformer在BEV感知中的统治地位

Transformer在BEV感知中的统治地位 ,人工智能,计算机视觉,大模型,AI,本文围绕 Transformer 在 BEV 感知中的统治地位展开,介绍了 Transformer 的基础原理,如自注意力、多头注意力机制等,以及 BEV 感知的概念、任务与挑战。阐述了 Transformer 在 BEV 感知中的技术优势,包括全局建模、灵活特征融合和长距离依赖捕捉能力,还介绍了典型架构、代码示例及在自动驾驶目标检测等领域的应用案例。同时,评估了其性能,提及优化方法,并展望了与其他技术融合、端到端系统等…

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 20万+

javaScript中的||和&&的用法

javaScript中的||和&&的用法

iteratorv2的博客 341

【技能】OpenClaw Memory 与 MemOS 两种 AI 记忆方案深度解析

摘要:本文对比了两种AI记忆系统方案。OpenClaw Memory是轻量级记忆助手,内置SQLite存储,支持语义搜索,部署简单成本低,适合日常对话记忆需求。MemOS是自学习系统,通过Neo4j和Qdrant实现技能自进化,但需部署4套服务,门槛高成本大。建议普通用户选择OpenClaw Memory,技术玩家可逐步尝试MemOS。两种方案各具优势,需根据实际需求选择。

海兰 197

JavaScript中alert(1&&2)为2的原因

金山面试时遇到alert(1&&2)输出为2的问题,不太明白,下来搜索了一下,发现 一个讲的比较好的博客 下面转载自穆乙’s Blog 专注前端技术的博客 一、先来说说||(逻辑或),从字面上来说,只有前后都是false的时候才返回false,否则返回true。 alert(true||false); // truealert(false||true); // t

qingliuFu的博客 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: CocoaPods安装和使用
牛少帅
博客等级 码龄11年 0粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值