【问题标题】:JS - Confusion between string and int variablesJS - string 和 int 变量之间的混淆
【发布时间】:2014-12-17 20:50:41
【问题描述】:

Javascript 真的让我头疼。起初我使用的是这段代码:

var val = document.getElementById("inputField").value; // User entered "2"
while (val < 5)
{
    val += 1
    alert(val);
}

但除非我在进入 while 循环之前使用 parseInt,否则它会执行 5+1 = 51。所以这意味着 val 不是数字。但是,在进入 while 循环时,在表达式(val

【问题讨论】:

  • 我会推荐给你,使用 jquery ....

标签: string variables int


【解决方案1】:

在编程世界中var x = 5var x = "5" 不同是很明显的 因为前者将 5 理解为数字,而后者将 5 理解为一个字符或一个字符的字符串

这里的问题来自两个来源

第一名: 是不是从 html 控件输入中获取数值,该控件输入在其 value 属性中接受文字文本(即使它是 number 类型)

第 2 名: 那个“+”运算符是否接受数字和文本操作数。其中5 + 1 的结果为 6。而"5" + "1" 的结果为“51”。 同样"5"+1 导致"51"

因此,javascript 认为输入的值作为文本和数字是有效的,并且加号操作适用于这两种类型,因此,它将其作为文本处理,因为没有其他符号表明它是数字

如果您将“+”替换为不接受文本作为操作数的“*”,您将获得预期的结果,其中"5" * 5 = 25

这里 jS 尝试在文本上应用乘法作为数字并且它成功了 但是,如果文本不是作为数字解析的。说“x”,然后"x" * 5 将导致NaN

【讨论】:

    猜你喜欢
    • 2019-06-18
    • 2011-09-22
    • 1970-01-01
    • 2012-10-20
    • 1970-01-01
    • 2016-09-22
    • 2015-06-01
    • 2020-01-08
    • 2012-10-21
    相关资源
    最近更新 更多