javascript - 奇怪的 JavaScript 运算符

标签 javascript jquery operators

我遇到了一个接线员的小问题。我有一个数字,根据按键输入加或减。奇怪的是,运算符 += 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/

相关文章:

javascript - 自定义图像 slider

java - 我期望输出为 40,但我得到了 30

python - 如何在python中重新定义=?

javascript - node.js 和 express - 使用多个中间件与回调 - 最佳实践是什么?

javascript - React hook 形式只允许大于 0 的数字

用于监听 YouTube HTML5 播放器中 URL 更改的 JavaScript

jQuery & CSS : Custom zoom function. .. 差不多了

javascript - document.getElementById 不适用于 Webpack

javascript - 如何让 php POST 代码在 Javascript 代码之前运行?

php - 对象运算符中的变量