[英]Why javascript console.log(1 + + “ ” + 3); sentence returns 4 and not “1 3”?
當語句console.log(1 + + " " + 3);
在Chrome控制台中執行,結果是4
而不是我期望的"1 3"
。
有人可以解釋為什么會這樣嗎?
這種行為稱為強制 。
在這種情況下, 一元加運算符+
轉換為右邊的表達式編號。 如果它不能解析特定值,則它將評估為NaN 。
+ " " //--> is coerced to 0
您可以在此要點中看到一些強制示例: JavaScript Coercion
如果您只是簡單地將問題分解成幾個組成部分,然后在控制台中鍵入+" "
,那么您會發現它的值為0
。 1+3+0
是4
。
評估語句時,將執行以下操作:
1 // one
+ // add
+ " " // implicitly convert " " to a number (0)
+ // add
3 // three
所以基本上是1 + 0 + 3
。 沒有字符串可以輸入此計算。 事先已將其轉換為數字。
在這種情況下, +
運算符是一元 +
(請參閱“強制”)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.