为啥prompt()方法不填直接点确定或者点取消会输出“不及格”
<html>
<head>
<meta charset="UTF-8">
<title>成绩判断</title>
</head>
<body>
<script>
//补充代码
var grade = prompt("请输入学生成绩"),aler;
if(grade>=90 && grade<=100) {
aler = "优秀";
}else if(grade>=80 && grade<=89){
aler = "良好";
}else if(grade>=70 && grade<=79){
aler = "一般";
}else if(grade>=60 && grade<=69){
aler = "及格";
}else if(grade>=0 && grade<=59){
aler = "不及格";
}else{
aler ="您输入的成绩有误";
}
alert(typeof grade);//不填直接确定是字符串,取消是对象
alert(parseInt(grade));//返回NaN
alert(aler);//显示不及格
</script>
</body>
</html>
正在回答
关系操作符(>,<,<=,>=)
如果一个操作数是数值,则将另一个操作数转换为一个数值,然后执行数值比较。
var grade = prompt("请输入学生成绩"),aler; if(grade>=90 && grade<=100) { aler = "优秀"; }else if(grade>=80 && grade<=89){ aler = "良好"; }else if(grade>=70 && grade<=79){ aler = "一般"; }else if(grade>=60 && grade<=69){ aler = "及格"; }else if(grade>=0 && grade<=59){ aler = "不及格"; }else{ aler ="您输入的成绩有误"; } alert(aler);//显示不及格
当输入为空,grade 点确定返回【空字符串】,点取消返回【null】.
转换数值规则:
如果是null值,返回0
如果字符串为空的(不包含任何字符),则将其转换为0;
满足等于0的条件,所以提示返回不及格。
希望能帮到你。
请点【采纳答案】⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄
一.【意思是在if语句里null与“空字符串”才会转化为数值零,还有别的语句有这个规则吗?】
关于【操作数】的是否转换以及转换规则,主要根据【操作符】来决定。
具体请参考【javascript高级程序设计】第三章操作符36页。
二. 【经测试: 0==null是false, 0==""是true】
相等操作符规则:
要比较相等性之前,不能将null和undefined转换成其他任何值。
null 表示一个空对象指针。
相等操作符的一些特殊情况:
true == 1 //true true == 2 //false undefined == 0 //false null == 0 //false null == undefined //true
如果一个操作数是字符串,另一个操作数是数值,在比较相等性之前先将字符串转换为数值。
三.【parseInt(""),parseInt(null),parseFloat(""),parseFloat(null)都是NaN;】
有3个函数可以把非数值转换为数值:Number(),parseInt(),parseFloat().
第一个函数Number(),可以用于任何数据类型,而另外二个函数则专门用于把字符串转换成数值。这3个函数对于同样的输入会有返回不同的结果。
Number()函数的转换规则:
.......
如果是null值,返回0
parseInt()规则:
如果第一个字符不是数字字符或者负号,就会返回NaN。
parseFloat()规则跟parseInt()类似,关键字【小数点】。无法解析的数据类型,他会返回NaN。
因为涉及的内容规则有点多和杂,需要参考。
建议同学,买本【javascript高级程序设计】
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36713 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星