为什么等于三

为什么等于三?

var x=0;
switch(++x){
case 0: ++x;
case 1: ++x;
case 2: ++x;
}

为什么 console.log(3)=3

阅读 2.5k
4 个回答

var x=0;
switch(++x){//++x为1
case 0: ++x;
case 1: ++x;//进到1,++x为2
case 2: ++x;//没有break,进到2,++x为3
}

switch ++x时,x = 1
进入case1就 ++x ,x = 2
因为没写break,继续进入case2 ++x ,x = 3

var x=0; //这里是0
switch(++x){//计算得1
case 0: ++x;
case 1: ++x;//所以匹配到这里哦,计算得2
case 2: ++x;//由于case 1没有做一个break,所以这里也被执行了哦,得3
}
还有,题主太萌了,console.log(3),当然输出3啦

等价于

var x = 0;
x += 1;
switch(x) {
    case 0:
        x += 1;
    case 1:
        x += 1;
    case 2:
        x += 1;
}
console.log(x);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题