Javascript 如何强迫JS做数学运算,而不是把两个字符串放在一起

Javascript 如何强迫JS做数学运算,而不是把两个字符串放在一起,javascript,string,math,addition,Javascript,String,Math,Addition,我需要javascript将5添加到整数变量中,但它将变量视为字符串,因此它写出变量,然后将5添加到“字符串”的末尾。我怎么能强迫它做数学呢 var dots = document.getElementById("txt").value; // 5 function increase(){ dots = dots + 5; } 输出:55 我如何强制它输出10?你有这条线吗 dots = document.getElementById("txt").value; 在您的文件中,这会将

我需要javascript将5添加到整数变量中,但它将变量视为字符串,因此它写出变量,然后将5添加到“字符串”的末尾。我怎么能强迫它做数学呢

var dots = document.getElementById("txt").value; // 5
function increase(){
    dots = dots + 5;
}
输出:
55

我如何强制它输出
10

你有这条线吗

dots = document.getElementById("txt").value;
在您的文件中,这会将点设置为字符串,因为txt的内容不限于数字

要将其转换为整数,请将行更改为:

dots = parseInt(document.getElementById("txt").value, 10);
注:此处的
10
指定十进制(以10为基数)。如果没有此选项,某些浏览器可能无法正确解释字符串。请参见MDN:。

您有这条线路

dots = document.getElementById("txt").value;
在您的文件中,这会将点设置为字符串,因为txt的内容不限于数字

要将其转换为整数,请将行更改为:

dots = parseInt(document.getElementById("txt").value, 10);
注:此处的
10
指定十进制(以10为基数)。如果没有此选项,某些浏览器可能无法正确解释字符串。请参阅MDN:。

最简单的:

dots = dots*1+5;
点将转换为数字。

最简单的:

dots = dots*1+5;

点将被转换为数字。

别忘了-使用
parseFloat()如果你处理的是小数。

别忘了-使用
parseFloat()如果你处理的是小数。

parseInt()

var number = "25";
var sum = parseInt(number, 10) + 10;
var pin = number + 10;
给你

sum == 35
pin == "2510"

注意:
parseInt(数字,10)
中的
10
指定十进制(以10为基数)。如果没有此选项,某些浏览器可能无法正确解释字符串。请参见MDN:。

parseInt()
应该可以实现这一点

var number = "25";
var sum = parseInt(number, 10) + 10;
var pin = number + 10;
给你

sum == 35
pin == "2510"


注意:
parseInt(数字,10)
中的
10
指定十进制(以10为基数)。如果没有此选项,某些浏览器可能无法正确解释字符串。请参阅MDN:。

自上次否决后更新的

我只看到了那一部分

var dots = 5
function increase(){
    dots = dots+5;
}
之前,但后来我看到,
txt
框为变量
。因此,您需要确保“清理”输入,确保它只有整数,而不是恶意代码

一种简单的方法是使用
onkeyup()
事件解析文本框,以确保它包含数字字符:

<input size="40" id="txt" value="Write a character here!" onkeyup="GetChar (event);"/>

自上次被否决以来已更新

我只看到了那一部分

var dots = 5
function increase(){
    dots = dots+5;
}
之前,但后来我看到,
txt
框为变量
。因此,您需要确保“清理”输入,确保它只有整数,而不是恶意代码

一种简单的方法是使用
onkeyup()
事件解析文本框,以确保它包含数字字符:

<input size="40" id="txt" value="Write a character here!" onkeyup="GetChar (event);"/>

这也适用于您:

dots -= -5;

这也适用于您:

dots -= -5;

我添加这个答案是因为我在这里看不到它

一种方法是在值前面放一个“+”字符

例如:

var x = +'11.5' + +'3.5'
x==15

我发现这是最简单的方法

在这种情况下,行:

dots = document.getElementById("txt").value;
可以改成

dots = +(document.getElementById("txt").value);
将其强制为一个数字

注:

+'' === 0
+[] === 0
+[5] === 5
+['5'] === 5

我添加这个答案是因为我在这里看不到它

一种方法是在值前面放一个“+”字符

例如:

var x = +'11.5' + +'3.5'
x==15

我发现这是最简单的方法

在这种情况下,行:

dots = document.getElementById("txt").value;
可以改成

dots = +(document.getElementById("txt").value);
将其强制为一个数字

注:

+'' === 0
+[] === 0
+[5] === 5
+['5'] === 5
这真的很简单

var total = (1 * yourFirstVariablehere) + (1 * yourSecondVariablehere)
这会迫使javascript成倍增加,因为*登录javascript不会产生任何混乱。

只要

var total = (1 * yourFirstVariablehere) + (1 * yourSecondVariablehere)

这将强制javascript成倍增加,因为*登录javascript没有混淆。

您可以在变量后面添加+并强制它为整数

var dots = 5
    function increase(){
        dots = +dots + 5;
    }

您可以在变量后面添加+并强制其为整数

var dots = 5
    function increase(){
        dots = +dots + 5;
    }

在针对我的具体案例尝试了这里的大多数答案后,我得出了以下结论:

dots = -(-dots - 5);

+符号使js感到困惑,这就完全消除了它们。简单易实现,但可能会让人困惑。

在针对我的具体案例尝试了这里的大多数答案后,我得出了以下结论:

dots = -(-dots - 5);
+符号使js感到困惑,这就完全消除了它们。易于实现,如果可能让人难以理解。

dots=document.getElementById(“txt”).value;
点=数量(点)+5;
//来自MDN
编号('123')//123
数字('123')==123///true
编号('12.3')//12.3
编号('12.00')//12
编号('123e-1')//12.3
编号(“”)//0
数字(空)//0
编号('0x11')//17
编号('0b11')//3
编号('0o11')//9
编号('foo')//NaN
编号('100a')//NaN
数字('-无限')/-无限

dots=document.getElementById(“txt”).value;
点=数量(点)+5;
//来自MDN
编号('123')//123
数字('123')==123///true
编号('12.3')//12.3
编号('12.00')//12
编号('123e-1')//12.3
编号(“”)//0
数字(空)//0
编号('0x11')//17
编号('0b11')//3
编号('0o11')//9
编号('foo')//NaN
编号('100a')//NaN
数字('-无限')/-无限

此特定示例输出10.5个可能重复的;请注意,您在不进行任何删减的情况下转储了所有代码,给那些想要帮助您的人带来了不应有的负担。您自己测试一下。
#control
的CSS属性对您的问题有什么影响吗?如果没有,则删除它们,不向我们显示它们。继续减少代码,直到获得重现问题所需的绝对最小测试用例。大多数情况下,这样做会让你发现问题并在过程中学习。如果你自己不解决这个问题,那么你很可能会在简单的例子中得到快速的帮助;请注意,您在不进行任何修改的情况下转储了所有代码,给那些想要帮助您的人带来了不应有的负担