应用运算符后,变量值会发生变化

时间:2017-03-26 22:09:58

标签: javascript

当我在选择了第一个单选按钮的情况下运行此功能时,系统会输出正确的值30.但是,一旦我尝试对此值应用某些更改(例如,通过将此值加1,则为30)系统结果显示301。

当选择值为25的单选按钮时,我遇到同样的问题。一旦我尝试进行数学更改,系统会将此变量视为250。

我在这里缺少什么想法?提前谢谢。

<script>
function f1()
            {
...
var Ergebnis_RP = document.getElementsByName("Ergebnis_RP");
                if(Ergebnis_RP[0].checked)
                    {   var Erg = Ergebnis_RP[0].value;}

                else if(Ergebnis_RP[1].checked)
                    {   var Erg = Ergebnis_RP[1].value;}
...
    document.write(Erg);
    var Spielwert = Erg + 1;
    document.write(Spielwert);
            }
        </script>

<body>
<input type="radio" name="Ergebnis_RP" value=30>Verl. Schwarz
<input type="radio" name="Ergebnis_RP" value=25>Verl. U3
</body>

1 个答案:

答案 0 :(得分:0)

文本框的值始终是字符串。你需要将它强制转换为数字。最简单的方法是:

+Ergebnis_RP[0].value

每次从文本框中读取数字时,请务必执行此操作。

对该问题的进一步解释:

组合两个字符串时,它们会像"ab" + "cd" -> "abcd"一样连接。

但是当你组合不同的类型时,第二个被强制与第一个相同。 "ab" + 1 -> "ab" + "1" -> "ab1"

您的代码需要一个字符串并添加一个数字。字符串恰好是数字,但这并不重要。 "12" + 3 -> "12" + "3" -> "123"

要解决此问题,请先从数字开始,然后添加字符串。 0 + "12" -> 0 + 12 -> 12

作为一种快捷方式,+运算符就像-运算符一样对数字起作用。考虑数字-5-是否定的。 +是另一个一元运算符,它接受一个数字并返回相同的数字。听起来毫无用处,但它有它的位置。 +"12" -> 12