奇怪的 if 语句计算行为
Strange if-statement evaluation behavior
我的javascript表现得很奇怪!
我的 html 文件中有一个输入字段。javascript 通过以下方式读取此输入字段:
var bscore = $("#bscore").val();
然后我想在输入低于某个输入时显示警报
if(bscore<"913"){
document.getElementById("bscorealert").style.display="block";
};
这工作正常。因此,当数字高于 913 时,它不应该显示。只有javascript的行为非常奇怪,当bscore输入字段中的数字高于999(因此1000或更高)时,if语句被触发并显示警报。
这怎么可能?
这是可能的,因为您正在比较字符串,而不是整数。字符串比较是按字典顺序进行的,所以"9" > "10"
等等。
您需要在与Number(strValue)
或一元运算符+
进行比较之前进行转换:
var bscore = +$("#bscore").val(); // + prefix converts to number
if (bscore < 913) ... // no quotes around 913!
您正在尝试比较 2 个字符串,它使用字母顺序比较。如果在字段中输入介于 9130 和 9999 之间的值,您会注意到消息框没有显示。
您必须执行 parseInt 来比较数值。
相关文章:
- JavaScript if() 语句未按预期计算
- 使用 Javascript switch 语句,如何计算数组中元素的数量(仅数字)
- 使用 If 语句的 Javascript 计算
- 由 OR 运算符分隔的语句的计算顺序
- 奇怪的 if 语句计算行为
- Javascript:如何在第 2 和第 3 语句中使用三元运算符计算 for 循环
- 在嵌套在 for 循环 (JavaScript/jQuery) 中的 switch 语句中计算 jQuery 数组的元素
- 使用条件语句和 while 循环 JavaScript 计算 2 个日期之间的闰年
- 为什么 javascript void 语句计算表达式
- JavaScript中的“while”语句如何计算递减变量
- jQuery - 如何计算 if/else 语句的两个选择选项值
- 多个嵌套if语句未进行计算
- javascript新手,可以't计算出document.getElementById与if语句中的值是否匹配
- 如何使用if语句创建用于求和值和计算结果的窗体
- JavaScript if/else语句计算行长度时出错
- 计算字段的Jquery if语句需要帮助
- 为什么获胜't我的JavaScript计算涉及if语句是否有效
- 用于计算bmr的if-else语句
- 使用if计算基于年龄的点数.Else语句中,脚本只显示第一个值
- 尝试从DOB导出年龄,然后计算点,使用if.其他语句