JS编程建议——16:防止switch贯穿

建议16:防止switch贯穿
JavaScript语言中那些显而易见的危险或无用的特性不是最糟糕的,这些特性很容易被避免。最糟糕的特性像“带刺的玫瑰”,它们是有用的,但也是危险的。
switch语句的由来可以追溯到FORTRAN IV的go to语句。除非明确地中断流程,否则每次条件判断后都贯穿到下一个case条件。switch语句的基本语法格式如下:

  1. switch (expression ){
  2. statements
  3. }
    完全扩展后的switch结构如下:
  4. switch ( expression ){
  5. case label:
  6. statementList
  7. case label:
  8. statementList
  9. ...
  10. default:
  11. statementList
  12. }
    当执行switch语句时,JavaScript解释器首先计算expression表达式的值,然后使用这个值与每个case从句中label标签值进行比较,如果相同则执行该标签下的语句。在执行时如果遇到跳转语句,则会跳出switch结构,否则按顺序向下执行,直到switch语句末尾。如果没有匹配的标签,则会执行default从句中的语句。如果没有default从句,则跳出switch结构,执行其后的句子。从ECMAScript v3版本开始允许case从句中可以是任意的表达式,这在C/C++和Java语言中是不允许的。switch语句的示例如下:
  13. switch (a = 3){
  14. case 3-2:
  15. alert(1);
  16. break;
  17. case 1+1:
  18. alert(2);
  19. break;
  20. case b=3:
  21. alert(3);
  22. }
    在switch语句中,case从句只是指明了想要执行代码的起点,并没有指明终点,如果没有向case从句中添加break语句,则会发生连续贯穿现象,从而忽略后面case从句,这样就会造成switch结构的逻辑混乱。不过,如果是在函数中使用switch语句,还可以使用return语句来代替break语句,这两个语句都可以终止switch语句,防止case从句之间发生逻辑贯穿。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值