100['toString'] //does not fail
100.toString //fails
爲什麼?100.toString vs 100 ['toString']
100.toString與100.toString()不相同。那麼爲什麼在第二種情況下,我沒有得到函數作爲返回值?
100['toString'] //does not fail
100.toString //fails
爲什麼?100.toString vs 100 ['toString']
100.toString與100.toString()不相同。那麼爲什麼在第二種情況下,我沒有得到函數作爲返回值?
第二行失敗,因爲它被解析爲數字「100.」,後面跟着「toString」。
要使用點符號,任何一個都將工作:
(100).toString
100.0.toString
100..toString
var a = 100;
a.toString
如果你想呼叫的toString
功能,您還需要包括括號:
(100).toString()
100.0.toString()
100..toString()
var a = 100;
a.toString()
我更喜歡使用圓括號(或者一個變量,如果我已經有一個明顯的變量),因爲替代方案可能會令人困惑和不直觀。
改爲使用(100).toString
。
Parens是最好的選擇。你也有同樣的問題w /函數定義。
function() {}.call() => fails
(function() {}).call() => succeeds
另一個例子:'100..toString()'也可以工作,因爲第一個週期是數字的一部分,第二個是屬性訪問語法的一部分。 – 2010-03-11 22:27:02
請注意,'100'和'100.0'不一樣。 – Gumbo 2010-03-11 22:30:32
@最大,好點。它看起來很有趣,但我也會添加。 – 2010-03-11 22:31:04