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上读取
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 } |