2016-03-12 23 views
0

toString()不適用於數字文字(如5.toString()),但它適用於字符串文字("str".toString())或數字文字被指定爲var之後,如var a = 5;a.toString()。想知道爲什麼它不適用於第一種情況?無法在Javascript中調用toString()數值常量

+2

因爲有會是一個語法歧義 - 點用來表示小數不已,當它跟隨的數字組成一個有效的數字.. – CBroe

+0

@CBroe這說得通。但是,用點小的上下文來區分點的含義並不困難。 – Thomson

+1

[調用數字文字的成員函數](http://stackoverflow.com/q/18555853/1529630)有一個很好的答案,它一步一步解釋爲什麼它不起作用。 – Oriol

回答

1

第一個點是decimal mark。你需要的第二個訪問屬性:

5..toString(); 
+0

不知道這件事。我學到了一些新的東西,但是我發現它在括號上的眼睛上有點語法上的困難。 – Timeout

+0

爲了完整起見,還是挺有用的;) - '032.toString()'起作用,因爲八進制數不能在JS中有小數。 – CBroe

+0

@Croro DecimalIntegerLiteral不能以'0'開始。將其解析爲LegacyOctalIntegerLiteral是嚴格模式中不允許的可選擴展。但是ES6引入了正確的OctalIntegerLiteral,並且你的方法是:'0o32.toString()' – Oriol

3

如果將其放在括號中,可以這樣做。

(5).toString(); 
相關問題