前言
今天写代码用了两层if判断,第一反应是只return出二层if,后续代码还能执行,写了两个console.log()后发现,里层if里的return如果执行的话,会直接return出外层的if
代码如下(示例):
var a = [1,2]
//当a[0]=1判断成立后,进入第一层if
if (a[0]=1) {
console.log(1);
//当a[1]=2判断成立后,进入第二层if,然后执行return,后续代码都不会执行,此时控制台只会打印 1
if (a[1]=2) {
return;
}
console.log(2);//2 不打印,后续代码也不执行
//后续代码不用管(项目里直接粘过来的)
this.myChannels.splice(index, 1);
if (index <= this.active) {
this.$emit("scbtn", this.active - 1, true);
}
this.deleteChannel(channel);
} else {
.....;
}
console.log(123);// 123 也不会被打印
总结
if判断里return不管写在哪里,return后面的代码都不会执行