起因。。
最近在写代码的时候 做一个循环判断,
需要逐个判断循环项的某些值去做相对应的逻辑处理
大概处理的数据如下:
let maps = [
{
...balabala,
hasA:true,
hasB:true
}
]
for(let map of maps ){
if(map.hasA){
// some script A
}else if(map.hasB){
// some script B
}
}
之前习惯了switch的写法,手动自己写break,这里竟然以为 hasA和hasB的相关代码都会执行。。。。
还纠结了很久,后来查了一下GPT
if
:适合单独判断的条件,即使前面的条件满足,后续条件也会被检查。下列代码会执行some script A 也会执行 some script B
let maps = [
{
...balabala,
hasA:true,
hasB:true
}
]
for(let map of maps ){
if(map.hasA){
// some script A
}
if(map.hasB){
// some script B
}
}
else if
:适合多个条件的互斥判断,只要前面的条件满足,后续的else if
就不会被检查。 下列代码只执行some script A
let maps = [
{
...balabala,
hasA:true,
hasB:true
}
]
for(let map of maps ){
if(map.hasA){
// some script A
}else if(map.hasB){
// some script B
}
}
if-else if
是一个条件链,它是从上到下依次检查条件的:
if
条件。if
条件为true
,执行对应的代码块,然后跳过整个else if
链。if
条件为false
,再依次检查else if
条件,直到找到一个true
为止。false
,则执行else
(如果有的话)。扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有