与或非——编程语言中的!|| && 与离散数学中的!v ∧ 优先级

1.问题背景:一同事让看一段逻辑有没有问题,其中一个if如下:

if(A || B && C){
    ...
}

是的,没有括号,平时根据需要会写成

if((A || B ) && C){
    ...
}

或者

if(A || (B && C)){
    ...
}

但是遗留的代码就是没有括号,就天真的以为&& 和 || 的优先级是一样的。结果自己写了个Demo发现,&& 是高于|| 的。

 

2. java 中的与或非优先级

!> && > ||

3.离散数学中的与或非优先级

!>  ∧ > v 

 

4.编码时不推荐不加括号的写法,有时可能会有坑!

 

JavaScript,逻辑运算符的优先级是有规定的。根据引用的规定,&&的优先级高于||。这意味着在一个表达式,如果同时含有&&和||,那么&&运算符会先于||运算符进行计算。而引用指出,在JavaScript只有6个假值,包括undefined、null、NaN、0、''(空字符串)和false。这些值在进行逻辑运算时会被当做假值。所以在使用||运算符时,如果第一个操作数为真值,则返回第一个操作数;如果第一个操作数为假值,则返回第二个操作数。而在使用&&运算符时,如果第一个操作数为假值,则返回第一个操作数;如果第一个操作数为真值,则返回第二个操作数。因此,&&和||的优先级对于逻辑运算的结果是有影响的。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [【JS】&&与||如何使用,&&与||的优先级可以证明吗?](https://blog.csdn.net/weixin_44100002/article/details/121244614)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [浅谈JS运算符&&和|| 及其优先级](https://download.csdn.net/download/weixin_38601364/12998992)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值