整数在Javascript中添加为字符串

Integers adding as strings in Javascript

本问题已经有最佳答案,请猛点这里访问。

我有两个文本字段imagewidth和imageheight…我想从他们那里得到输入,添加当前鼠标池位置,然后做一些事情:

1
2
3
4
5
6
7
8
9
10
x = e.pageX - canvas.offsetLeft;
y = e.pageY - canvas.offsetTop;
var wWidth = document.getElementById('imageWidth').value;  
var wHeight = document.getElementById('imageHeight').value;
var b = x + wWidth;
alert(b);
if(x+wWidth < 800 && y+wHeight < 1560)
{
//some work here
}

所以,如果用户输入宽度为400,X返回151…B值为151400…而我希望它是551的循环正常工作…


这应该有效:

1
2
3
4
5
6
7
8
9
10
x = e.pageX - canvas.offsetLeft;
y = e.pageY - canvas.offsetTop;
var wWidth = document.getElementById('imageWidth').value;  
var wHeight = document.getElementById('imageHeight').value;
var x1 = parseInt(x, 10) + parseInt(wWidth, 10);
var y1 = parseInt(y, 10) + parseInt(wHeight, 10);
if(x1 < 800 && y1 < 1560)
{
    //some work here
}


您应该在MDN上读取parseInt()方法-->parseInt()。


javascript是一种隐式类型的语言。这意味着当你想做数学时,你必须告诉它事物的类型。您的代码只是告诉它连接字符串,因此您将看到结果。

试试这个:

1
2
3
4
5
6
7
8
9
10
x = e.pageX - canvas.offsetLeft;
y = e.pageY - canvas.offsetTop;
var wWidth = document.getElementById('imageWidth').value;  
var wHeight = document.getElementById('imageHeight').value;
var b = parseInt(x, 10) + parseInt(wWidth, 10);
alert(b);
if(x+wWidth < 800 && y+wHeight < 1560)
{
//some work here
}