Javascript切换大于/小于运算符不工作

时间:2015-04-13 19:25:34

标签: javascript switch-statement case

以下代码获取屏幕分辨率并且有效 - 变量ScreenWidth包含正确的值但大于“>”的情况并且小于“<”不起作用,代码始终显示默认图像。将第一种情况更改为“case(ScreenWidth = 800):”确实有效。我也尝试使用“switch(TRUE)”,它完全没有任何功能,甚至不是默认情况。

所以我的问题是“为什么大于/小于运营商不工作?”

<script type="text/javascript">
var ScreenWidth;
ScreenWidth = (screen.width);

switch (ScreenWidth)
{
    case (ScreenWidth > 799): 
        ShowImage = ('Big.jpg');
    break;

    case (ScreenWidth < 800):
        ShowImage = ('Small.jpg');
    break;

    default :
        ShowImage = ('Default.jpg');
}

</script>

1 个答案:

答案 0 :(得分:4)

  

为什么大于/小于运营商不工作?

因为您要将数字ScreenWidth)与布尔ScreenWidth > 799)进行比较。 switch使用严格比较对值进行相等性测试,因此比较不同的数据类型将始终生成false

  

将第一个案例更改为case (ScreenWidth = 800):确实有效。

那是因为=是一项作业,而ScreenWidth = 800的结果是800,所以您要与一个数字进行比较,这很好。

  

我也尝试使用“switch(TRUE)”,它完全没有任何功能,甚至不是默认情况。

好吧,JavaScript中不存在TRUE。 JS 区分大小写switch(true)应该可以正常工作。