我对操作员有一点问题。我有一个根据键输入而加或减的数字。奇怪的是,运算符+ = 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
转换为数字-=
起作用的原因是因为它仅具有一个函数(使用Math进行减法),因此boxId
被强制转换为运算前的数字。 +
在JavaScript中过载,表示“字符串连接或数学加法”,因此,如果boxId
是字符串,则执行字符串操作。