请教一个Prompt 返回值的问题? 谢谢
今天做题,有个问题不清楚:====================代码======================
<html>
<head>
<script language="JavaScript">
function jihua() //定义函数 jihua()
{
var a=prompt("请输入今天星期几","1");
if(a>="1"&&a<="7")
{
if(a=="1")
document.write("今天做第一章的作业\n");
if(a=="2")
document.write("今天做第二章的作业\n");
if(a=="3")
document.write("今天做第三章的作业\n");
if(a=="4")
document.write("今天做第四章的作业\n");
if(a=="5")
document.write("今天做第五章的作业\n");
if(a=="6")
document.write("今天做第六章的作业\n");
if(a=="7")
document.write("今天做第七章的作业\n");
}
else
document.write("您的输入有误");
}
</script>
</head>
<body>
<input name="zuoyeanpai" type="button" onClick="jihua()" value="查看计划">
</body>
</html>
====================代码===========================
这里想请教大家, 我输入 1-7 没有问题,但是输入 8或9 就会提示 你输入有误,但是一旦输入10或10以上的数字 就不会提示错误, 我 后来添加 a=parseInt(a); 就正常了,请问前面的问题是怎么回事啊~~? 谢谢 prompt返回的是字符串,如果在prompt中输入了:10,返回的是字符串:"10".
这是代码运行到: if(a>="1"&&a<="7"),此时实际上是比较:
"10" > "1" && "10" <= "7"
当两个字符串比较时,是一个字符一个字符比较的,在这里就是:
首先比较"10"和"1":
1. "1" == "1"
2. "0" > ""
结果就是: "10" > "1" == true
然后比较"10" 和 "7":
1. "1" < "7"
结果就是: "10" < "7" == true
所以:a>="1"&&a<="7" 的结果就是true,就开始执行if块中的代码,而不会执行eles分支中的代码。
一句话,字符串的大小比较与数字的大小比较是不一样的。 prompt返回的是字符串
页:
[1]
