這純粹是一個教育問題。Javascript:什麼是「 - 0」在幹什麼?
我正在研究一個我正在爲之工作的公司的新版本的Web應用程序。當重寫數學時,我碰到了這個:
document.getElementById("estResidual").value-0;
認爲沒有目的的「-0」,我刪除它。但是當我嘗試計算時,數字是waaayyyyyyy關閉。然後我嘗試重新添加「-0」,瞧!一切都很好。
問題: 「-0」做了什麼改變值?
這純粹是一個教育問題。Javascript:什麼是「 - 0」在幹什麼?
我正在研究一個我正在爲之工作的公司的新版本的Web應用程序。當重寫數學時,我碰到了這個:
document.getElementById("estResidual").value-0;
認爲沒有目的的「-0」,我刪除它。但是當我嘗試計算時,數字是waaayyyyyyy關閉。然後我嘗試重新添加「-0」,瞧!一切都很好。
問題: 「-0」做了什麼改變值?
這是(ab)使用JavaScript的軟打字行爲。在這種情況下,將一個字符串轉換爲float:
> "13"
"13"
> "13"-0
13
> "1.01"-0
1.01
一元+
會做同樣的:
> +"13"
13
> +"9.9"
9.9
注意,使用+
反而會轉換成整數0
成字符串並連接它:
> "13"+0
"130"
這是全部標準化的。有關這些操作員應該如何操作的明確細節,可以隨時檢查ECMAScript語言規範(例如,addition,subtraction,unary plus)。
注 - 當您使用'+ 0'時,它可能仍然看起來像一個串聯。與減號不混淆。 – Floris
@弗洛伊斯 - 只是重新讀你的評論,並意識到這一點...所以我刪除了我的。 :) – Steve