2017-09-23 96 views
-1

我得到了一個項目,發現很神祕。
我在javascript代碼中找到了a - 1 + 2,我認爲它會和a + 1一樣,並用它替換。 但它做出錯誤的答案。 當javascript中的a + 1和a - 1 +2有什麼區別

a = 1 => a -1 +2 = 2 
     => a + 1 = 11 

任何人都可以描述這個問題?

+2

'a'是一個字符串... – Li357

+0

它是一個html輸入對象,我如何設置html對象只包含整數? –

+0

您可以使用'+ a + 1'來確保'a'被強制爲一個數字。 JavaScript有幾種將字符串轉換爲數字的方法。 – 4castle

回答

6

a是一個字符串。因爲+可能意味着增加或字符串連接,這就是你在這裏看到的。在JavaScript中,如果至少有一個字符串加數,則兩個操作數都被強制轉換爲字符串並進行連接。因此"1" + 1"11"。但在JavaScript中, - 只有一個意思,減法。因此它將兩個操作數轉換爲數字並進行相減。減法不會發生級聯,因此會產生差異。

加入之前就強制a成整數:

+a + 1 

這裏,一元+隱式轉換a爲數字。

+0

謝謝,我有一個解決方案。 –

相關問題