我对操作员有一点问题。我有一个根据键输入而加或减的数字。奇怪的是,运算符+ = 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是字符串,则执行字符串操作。

10-05 22:35