开发者

Weird JavaScript operators

开发者 https://www.devze.com 2023-02-25 05:29 出处:网络
I\'m having a little problem with an operator. I have a number which is either plussed or subtracted depending on key input. The weird thing is that the operators += 1 and += 11 adds the numbers liter

I'm having a little problem with an operator. I have a number which is either plussed or subtracted depending on key input. The weird thing is that the operators += 1 and += 11 adds the numbers literally to the static number: 60 becomes 601 and 6011 instead of 61 and 71.

Here is the 开发者_C百科code, so take into consideration that the static number is 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 is a string in your case. Convert it to a number first using parseInt(boxId) or just boxId << 0

The reason -= works is because it only has one function (subtract using Math), so boxId is cast to a number before the operation. + is overloaded in JavaScript to mean "string concatenation OR Math addition", so if boxId is a string, it does string ops.

0

精彩评论

暂无评论...
验证码 换一张
取 消