1
A
回答
12
Number + String
不是算術運算。
在Number + String
聲明中,引擎會將該數字轉換爲等效字符串。你的情況是1 -> '1'
。然後將簡單字符串連接起來,因爲+
運算符會連接兩個字符串。
'1' + 'b' === '1b';
代碼段
console.log(1 + 'b');
萬一與IsNaN('b')
,它會嘗試檢測是該參數的數目或沒有。 'b'
不是一個數字(NaN
),所以它會返回true
。
代碼段
console.log(isNaN('b'));
有關詳細看到Documentation
4
的+
操作者被定義爲級聯如果操作數是一個字符串。
來源:https://www.ecma-international.org/ecma-262/5.1/#sec-11.6.1
5
因爲它不是一個算術運算,這是一個字符串連接。每當或操作數到+
是一個字符串,字符串連接完成,而不是加法; details in the spec。如果另一個操作數不是一個字符串,那麼它就是字符串。所以你最終得到"1" + "b"
=>"1b"
。
1
+
運算符,當它有一個字符串作爲它的參數之一時,將被解釋爲「連接」運算符而不是「加法」。非字符串值將被轉換爲字符串並附加到或附加到字符串值,具體取決於它是否在操作符的右側或左側(分別)。
相關問題
- 1. <%$,<%@,<%=,<%#...這是怎麼回事?
- 2. 這是什麼算子<<< bash
- 3. THREE.Camera.prototype.lookAt</ <() -</ <是什麼意思?
- 4. 什麼是我的檔案中的「<<<<<<< head」?
- 5. 爲什麼Enumerable.ToLookup <>()返回一個ILookup <,>而不是查找<,>?
- 6. C - 這是什麼語法? <<
- 7. 操作<<爲QString的
- 8. (x << 13)^ x是什麼意思?
- 9. 什麼是PHP中的「<<< SQL」?
- 10. 什麼是Swift上的+++和<<<?
- 11. 是VAR | = 1 << 2; reverisble?
- 12. 這句話是什麼(1個<< Y)的位運算
- 13. 爲什麼Edge爲/^.+<\?xml/i.test('<?xml version =「1.0」?><root/>')返回true是否有任何理由?
- 14. PHP操作<<<
- 15. Php <<<是什麼意思?
- 16. 是否有在這種情況下,鑄件的問題,如果((X +(Y << 16))==( '一個' +( 'B' << 16)))
- 17. 爲什麼在操作符<exists時定義lt lt?
- 18. <?php,<?, <?=,有什麼區別?
- 19. wcout << L是什麼?
- 20. (1U << X)做什麼?
- 21. 爲什麼(1 <1 <1)在C++中返回true?
- 22. 爲什麼輸出cout << setprecision(2)<< 0.999是1而不是1.0?
- 23. std :: cout << x;和std :: cout << x << std :: endl;?
- 24. 沒有操作符<<與這些操作數匹配WITH #include <string>
- 25. Bash語法:什麼是「<<」?
- 26. 算術與<<操作
- 27. 爲什麼我不能做列表<X<Long>>作爲列表的參數<X<?>>
- 28. 什麼意思的符號在java中「<<<」「<< =」「<<」
- 29. JsonConvert.DeserializeObject <列表<Enrollment>>總是返回10個結果
- 30. 查找和表p_suppliers</p> <pre><code>www.loohuis.nl#http://www.loohuis.nl# </code></pre> <p>,我想有這樣的</p> <pre><code>www.loohuis.nl </code></pre> <p>爲什麼不工作這個查詢替換##
你已經得到了答案,但也請查看關於[表達式和運算符 - 字符串運算符]的文檔(https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Expressions_and_Operators#String_operators) – Nope
簡答題:因爲它不是算術運算:) –