我遇到了一个接线员的小问题。我有一个数字,根据按键输入加或减。奇怪的是,运算符 += 1 和 += 11 将数字逐字添加到静态数字:60 变成 601 和 6011,而不是 61 和 71。
这是代码,所以考虑到静态数字是 60:
switch(e.keyCode) {
case 37:
boxID -= 1;
break;
case 38:
boxID -= 11;
break;
case 39:
boxID += 1; // Becomes 601
break;
case 40:
boxID += 11; // Becomes 6011
break;
}
最佳答案
boxId
在你的情况下是一个字符串。首先使用 parseInt(boxId)
将其转换为数字或者只是 boxId << 0
原因-=
有效是因为它只有一个函数(使用数学减法),所以 boxId
在操作前被转换为一个数字。 +
在 JavaScript 中重载表示“字符串连接或数学加法”,所以如果 boxId
是一个字符串,它执行字符串操作。
关于javascript - 奇怪的 JavaScript 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5657741/