【问题标题】:Simple Javascript syntax behaving unexpectedly [duplicate]简单的 Javascript 语法行为异常[重复]
【发布时间】:2014-11-04 18:22:10
【问题描述】:

将 60 + 5 显示为 605 而不是 65

g = document.getElementById("height1").value * 12;
alert(g);    <---- This is showing 60
h = document.getElementById("height2").value;
alert(h);   <---- This is showing 5
b = g+h;
alert(b);    <---- This is showing 605

任何想法

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    Javacript 不是强类型语言。最好解释变量的类型,通常,如果您尝试将类似字符串的变量添加到类似整数的变量,它会将其解释为字符串连接。

    您可以强制将变量解释为整数,如下所示:

     b = parseInt(g) + parseInt(h);
    

    或者,使用其他技巧将强制变量变为数字,如下所示:

     b = (g*1) + (h*1);
    

    【讨论】:

    【解决方案2】:

    使用parseInt() 转换为整数。 Javascript 中的+ 既可以用于添加,也可以用于连接。

    【讨论】:

    • 非常感谢它成功了。
    【解决方案3】:

    b = (g+h) 怎么样?

    确保变量是整数,否则将它们转换为整数

    【讨论】:

    • ok 然后使用 b = parseInt(g)+parseInt(h)
    • 是的,它现在工作了。非常感谢。
    【解决方案4】:

    如果这些 HTML 元素的值是字符串(例如在文本输入框中?),那么您所做的是连接字符串,而不是添加数字。

    您需要 1) 确保输入值实际上是数字,以及 2) 使用 parseInt() 将字符串转换为整数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-18
      • 2017-08-02
      • 1970-01-01
      • 2011-07-19
      相关资源
      最近更新 更多