本例用swtich出现的问题
<!DOCTYPE HTML> <html > <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>函数</title> <script type="text/javascript"> //定义函数 function big(x,y){ switch(x,y) {case x>y: return x; break; case x=y: return x; break; case x<y: return y; break; } } //函数体,判断两个整数比较的三种情况 //调用函数,实现下面两组数中,返回较大值。 document.write(" 5 和 4 的较大值是:"+big(5,4)+"<br>"); document.write(" 6 和 3 的较大值是:"+big(6,3) ); </script> </head> <body> </body> </html>
楼主尝试在switch()中,如果是switch(true),没问题。但是switch(x,y),有趣的是竟然显示的:4,3(明明较小的);switch(y,x)结果就成了未定义;
然后楼主去翻js高程的此部分,switch(expression){case:value:statement 。。。。。等,其中有提到:可以在switch语句中使用任何数据类型,无论字符串,还是对象都没有问题。其次,每个case的值不一定是常量,可以是变量,甚至表达式(也就是楼主所用的大小判断)。
那么,如何理解expression与value的呢?是否能理解为两者要求相等还是完全相等(类型)呢?