美文网首页
JavaScript 中你不知道的 default

JavaScript 中你不知道的 default

作者: KimYYX | 来源:发表于2019-01-03 21:24 被阅读0次

    defaultswitch 中是可选的,并非必不可少,但我们通常会把它放在最后来执行兜底操作。但是你们有试过把 default 放在 case 的中间吗?会发生什么神奇的现象吗?今天就让我们来做几个实验。

    实验1

    var a = 10;
    switch (a) {
      case 1:
        console.log(1);
      case 2:
        console.log(2);
      default:
        console.log('default');
      case 3:
        console.log(3);
      case 4:
        console.log(4); 
    }
    

    上面的示例输出的结果依次是 default34

    实验2

    var a = 10;
    switch (a) {
      case 1:
        console.log(1);
      case 2:
        console.log(2);
      default:
        console.log('default');
      case 3:
        console.log(3);
        break;
      case 4:
        console.log(4); 
    }
    

    上面的示例输出的结果依次是 default3


    这两个实验很迷,输出 default 我们能理解,但为什么没有匹配到的 3 和 4 也会输出呢?既然 3 和 4 输出了,为什么 1 和 2 不输出呢?

    其实上面的代码是这样执行的,首先遍历并找到匹配的 case,如果没有匹配(我们这个例子就是没有匹配的)则执行 default,但此时 default 中不存在 break,所以程序又沿着代码继续往下走了!输出了 3,第二个实验中因为输出 3 之后碰到了 break,所以没有输出 4。

    相关文章

      网友评论

          本文标题:JavaScript 中你不知道的 default

          本文链接:https://www.haomeiwen.com/subject/xeoqrqtx.html