首先要了解 NaN 是什么:Not a number ( 非数值 )
当语句中需要判断一个变量值是否为数值时,可以用isNaN()方法,得到true则表示不是数值。
var val = "abc"alert(isNaN(val))//结果为:true
虽然语句中碰到产生NaN错误还会继续往下一句解析执行,但还是应该用判断语句处理一下:
if(isNaN(val)){alert("val值 为 非数值")
//其他处理语句,如重新获取、从其他地方获取
}
"下午 "+hours -12加入时20:35
问题出在这里,由于有字符串,这里加号功能是字符串连接
结果是"下午8"-12
由于减号不支持字符串操作,只能尝试将"下午8"转换为数字,结果发现无法转换
因此就产生了NaN 意思是 not a number 。即 非数字。
因此这个表达式改为:"下午" + (hours - 12)即可
另外 写程序不需要莫名的一些括弧
timeValue = hours >12 ? "下午 " + (hours -12) : "上午 "+hours
这样写完全可以达到目的
也能让表达式看起来更清晰