我得到了一個項目,發現很神祕。
我在javascript代碼中找到了a - 1 + 2
,我認爲它會和a + 1
一樣,並用它替換。 但它做出錯誤的答案。 當javascript中的a + 1和a - 1 +2有什麼區別
a = 1 => a -1 +2 = 2
=> a + 1 = 11
任何人都可以描述這個問題?
我得到了一個項目,發現很神祕。
我在javascript代碼中找到了a - 1 + 2
,我認爲它會和a + 1
一樣,並用它替換。 但它做出錯誤的答案。 當javascript中的a + 1和a - 1 +2有什麼區別
a = 1 => a -1 +2 = 2
=> a + 1 = 11
任何人都可以描述這個問題?
a
是一個字符串。因爲+可能意味着增加或字符串連接,這就是你在這裏看到的。在JavaScript中,如果至少有一個字符串加數,則兩個操作數都被強制轉換爲字符串並進行連接。因此"1" + 1
是"11"
。但在JavaScript中, - 只有一個意思,減法。因此它將兩個操作數轉換爲數字並進行相減。減法不會發生級聯,因此會產生差異。
加入之前就強制a
成整數:
+a + 1
這裏,一元+
隱式轉換a
爲數字。
謝謝,我有一個解決方案。 –
'a'是一個字符串... – Li357
它是一個html輸入對象,我如何設置html對象只包含整數? –
您可以使用'+ a + 1'來確保'a'被強制爲一個數字。 JavaScript有幾種將字符串轉換爲數字的方法。 – 4castle