Switch语句在javascript中工作不正常

Switch语句在javascript中工作不正常,javascript,html,Javascript,Html,虽然我按了1和2,但它总是回答“你好城市”。。代码有什么问题?用什么更好?if-else语句还是switch语句? 有人能帮忙吗 <!DOCTYPE html> <html> <head> <title></title> </head> <body> <script type="text/javascript"> function number() { var number; number

虽然我按了1和2,但它总是回答“你好城市”。。代码有什么问题?用什么更好?if-else语句还是switch语句? 有人能帮忙吗

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<script type="text/javascript">

function number()
{

var number;
number=document.getElementById('m').value;

switch (number)
{
case 1:
day="Hello World";
break;

case 2:
day="Hello Asia";
break;

default :
day="Hello City";


}
document.write(day);

}


</script>

<input type="number" name="" id="m">
<input type="submit" name="Click" onclick="number()">
</body>
</html>

将值显式转换为一个数字,否则它将是一个字符串,Javascript中的Switch语句始终使用严格的类型检查===,因此您的示例将始终返回默认值

var number= +document.getElementById('m').value;

将值显式转换为一个数字,否则它将是一个字符串,Javascript中的Switch语句始终使用严格的类型检查===,因此您的示例将始终返回默认值

var number= +document.getElementById('m').value;

那么解析为整数呢

var number=parseIntdocument.getElementById'm'。值


开关检测严格把关。所以使用了三重等于。

解析为整数怎么样

var number=parseIntdocument.getElementById'm'。值


开关检测严格把关。所以使用了三重相等。

它起作用了……但我还没有得到这个。我们不必告诉javascript它是数字或字符串,就像我们在php中所做的那样。javascirpt不能自己获取数据类型?@YousafFarooq DOM元素上的所有值属性都是字符串。如果要将该值作为其他数据类型处理,则必须将其显式转换为其他数据类型。@YousafFarooq我已编辑了我的答案。switch语句中没有类型强制,因此您还必须匹配类型:@YousafFarooq,您认为20==XX应该是真的吗?因为它们都是二十个,一个是阿拉伯数字,一个是罗马数字。这很有效……但我还没弄明白。我们不必告诉javascript它是数字或字符串,就像我们在php中所做的那样。javascirpt不能自己获取数据类型?@YousafFarooq DOM元素上的所有值属性都是字符串。如果要将该值作为其他数据类型处理,则必须将其显式转换为其他数据类型。@YousafFarooq我已编辑了我的答案。switch语句中没有类型强制,因此您还必须匹配类型:@YousafFarooq,您认为20==XX应该是真的吗?因为两者都是二十,一个是阿拉伯数字,一个是罗马数字。