1. // 当default 放在case之间 且没有break
    2. // 代码先执行输出 default 然后 没有break 继续往下执行 不论foo 与里面值是否匹配 都会执行。
    3. //然后就执行输出1 总结 先执行 console.log('default')==》接着执行 console.log(1);
    4. var foo =5;
    5. switch(foo){
    6. case 2:
    7. console.log(2);
    8. break;
    9. default:
    10. console.log('default');
    11. // 如果这里 有break 控制台只会输出default 就不会 输出 1了
    12. case 1:
    13. console.log(1);
    14. }

    注意:代码将会从值所匹配的 case 语句开始运行,然后持续执行下一个 case 语句而不论值是否匹配。不匹配也会执行 直到遇到break 才跳出去。
    case字句 与所输入的 expression 的值所相等的子句(使用 严格运算符,===)并将控制权转给该子句
    就是进行 全等的校验。

    1. // 当default 放在case之间 且没有break 但后面有他的匹配值
    2. // 它回跳过 default 直接找到它的匹配值。输出5;
    3. var foo =5;
    4. switch(foo){
    5. case 2:
    6. console.log(2);
    7. break;
    8. default:
    9. console.log('default');
    10. // 如果这里 有break 控制台只会输出default 就不会 输出 1了
    11. case 1:
    12. console.log(1);
    13. break;
    14. case 5:
    15. console.log(5);
    16. break;
    17. }
    18. //=========================================================================================
    19. // 当default 放在case之间 且没有break 但后面有他的匹配值 不过是字符串 但是 他会与子语句 进行全等比较。 不符合 执行 default语句。
    20. var foo =5;
    21. switch(foo){
    22. case 2:
    23. console.log(2);
    24. break;
    25. default:
    26. console.log('default');
    27. // 如果这里 有break 控制台只会输出default 就不会 输出 1了
    28. case 1:
    29. console.log(1);
    30. break;
    31. case '5':
    32. console.log(5);
    33. break;
    34. }