在JavaScript的条件判断语句中
if ( type===A || B ) { Do Something }
是否等同于
if ( type===A || type===B ) { Do Something }
我自己测试了一下这两行代码,输出的结果居然完全相同
但是运算符优先级表里面"==="比较运算应该在"||"集合运算之前
望大神能用更清晰的例子证明该条件判断的顺序
在JavaScript的条件判断语句中
if ( type===A || B ) { Do Something }
是否等同于
if ( type===A || type===B ) { Do Something }
我自己测试了一下这两行代码,输出的结果居然完全相同
但是运算符优先级表里面"==="比较运算应该在"||"集合运算之前
望大神能用更清晰的例子证明该条件判断的顺序
type === A
如果成立,会直接短路,后面是什么都无所谓B
如果不为 否
,type === B
那么自然也能通过不等同,js没这样的语法,if(type === A || B)
==> if((type === A) || (B))
在type===A
为false
的情况下,js会把B
转换成布尔类型进行判断
运算符优先级看这个:https://developer.mozilla.org...
没什么需要证明的,这种语言层面的东西,记住就行了。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
(type === A) || B
type !== A
时,表达式求值就是B
type!==A
,第一个判断就是if (B)
, 第二个表达式就是if (type === B)
,当type === B
且B
转boolean
为true
,那么就是一样的结果