js中switch语句中case值可不可以表示一个范围

JavaScript023

js中switch语句中case值可不可以表示一个范围,第1张

js中switch语句中case值可以表示一个范围。

1、打开浏览器的控制台,在控制台中定义一个函数,函数中使用switch命令,case后面的条件是一个范围:

2、调用函数,函数的参数值为“90”,由于“90”大于“80”,所以函数返回“优秀”:

3、调用函数,函数的参数值为“59”,由于“59”大于“0”,所以函数返回“不及格”:

那个,前面的回答,我表示有意见。

首先,括号中的A,B,C,是用逗号隔开的三个表达式A、B、C,这个整体叫做逗号表达式。

何为逗号表达式 ?参见百科 http://baike.baidu.com/view/2393109.htm

直接点说,逗号表达式最后的值,是由表达式的最后一个表达式(这里是表达式C)决定的。但是,并不是像前面仁兄所说的不执行前面的,而是会一个一个执行(先A,然后B,最后C)。

如果把这个逗号表达式分开来写,应该是下面这样:

A

B

switch(C) {

}

下面写一个很简单的例子来说明这个问题:

<script>

var a, b, c

switch(a=2, b=3, c=a+b){

case 2:alert(2)break

case 3:alert(3)break

case 5:alert(5)break

default:alert('none')

}

</script>

上面的结果,是5 。 我想这是最有力的证明了!

用 switch(true) 可能能实现你的需求。

switch( true ) { case x >1 : breakcase x == 1 : breakcase x <1 : break}

或者,如果两个case执行相同的操作:

switch( x ) { case 0 : case 1 : breakcase 2 : breakdefault : break}