0


JavaScript中的switch详解

switch 语句用来选择多个需被执行的代码块之一。

1. 语法

switch(表达式){case n:
    代码块
      break;case n:
      代码块
      break;default:
      默认代码块
}

2. 代码解释

  • 计算一次 switch 表达式
  • 把表达式的值与每个 case 的值进行对比
  • 如果存在匹配,则执行关联代码

3. break 关键词

如果 JavaScript 遇到 break 关键词,它会跳出 switch 代码块。不必中断 switch 代码块中的最后一个 case。代码块在此处会自然结束。

4. default 关键词

default 关键词规定不存在 case 匹配时所运行的代码。

  • default 不必是 switch 代码块中最后一个 case。
  • 如果 default 不是 switch 代码块中最后一个 case,请记得用 break 结束默认 case。
  • default 是可选的,并非必不可少(虽然惯例如此)。break 相关规则对 default 仍 然适用。

5. 严格的比较

Switch case 使用严格比较(===)。值必须与要匹配的类型相同。只有操作数属于同一类型时,严格比较才能为 true。

functiondemo(param){switch(param){case'1':
            console.log('1')breakcase'2':
            console.log('2')breakdefault:
            console.log('default')}}demo('2')// 2demo(2)// defaultdemo(newString('2'))// default
let o1 ={}let o2 ={}let o3 ={}let o4 = o3

functiondemo(o){switch(o){case o1:
            console.log('o1')breakcase o2:
            console.log('o2')breakcase o3:
            console.log('o3')breakdefault:
            console.log('default')}}demo(o1)// o1demo(o3)// o3demo(o4)// o3

6. case后接表达式

functiondemo(param){switch(true){case param =='1':
            console.log('1')breakcase param =='2':
            console.log('2')breakdefault:
            console.log('default')}}demo(1)// 1demo('1')// 1demo(2)// 2
functiondemo(){switch(3){case1+1:
            console.log('1 + 1')breakcase1+2:
            console.log('1 + 2')breakcase1+3:
            console.log('1 + 3')breakdefault:
            console.log('default')}}demo()// 1 + 2
functiondemo(a, b){switch(a){case b +1:
            console.log('b + 1')breakcase b +2:
            console.log('b + 2')breakcase b +3:
            console.log('b + 3')breakdefault:
            console.log('default')}}demo(3,1)// b + 2demo(4,1)// b + 3demo(4,2)// b + 2demo(4,4)// default

7. 表达式中的严格相等

functiondemo(){let a ='hello'let b ='10'switch(true){case(a || b ==10):
            console.log('1')breakdefault:
            console.log('default')}}// a || b == 10 的值为 hello,和 true 不严格相等demo()// default
functiondemo(){let a ='hello'let b ='10'switch(true){case!!(a || b ==10):
            console.log('1')breakdefault:
            console.log('default')}}demo()// 1

本文转载自: https://blog.csdn.net/u011140116/article/details/122870529
版权归原作者 周晓风 所有, 如有侵权,请联系我们删除。

“JavaScript中的switch详解”的评论:

还没有评论