JavaScript中将整数作为字符串相加

3
我有两个文本框imageWidth和imageHeight...我想从它们中获取输入,加上当前鼠标指针位置,然后进行一些操作:
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
看一下 JavaScript 中的 parseInt 函数。 - tjg184
https://dev59.com/rnNA5IYBdhLWcg3wAItP - tjg184
1
.value 返回一个字符串。请参考链接的重复内容,了解如何将其转换为整数。 - Jamiec
3个回答

2

这应该可以工作:

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
}

2

1
Javascript是一种隐式类型的语言。这意味着当你想进行数学运算时,必须告诉它事物的类型。你的代码只是告诉它将字符串连接起来,因此你看到的结果就是这样的。
尝试这个:
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
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接