我有一個按鈕,在後面的代碼中我添加了一個onclick
,並且我傳遞了一個將傳遞給js函數的唯一ID。該ID以0以0開頭的Javascript提醒號碼
它不工作開始,最終我想通了,數,ID,它是通過錯了...
IE瀏覽器。看到這個:js fiddle
它與數字的開頭和結尾的'一起工作。只是想知道爲什麼013變成11.我做了一些谷歌搜索,但沒有找到任何東西...
乾杯
羅賓
編輯:
謝謝你們。是的,現在明白了。
正如在這種情況下,0在開始時有一個含義,這裏是郵件列表中的收件人ID,我將使用'013'而不僅僅是013,即一個字符串。然後,我可以在js中拆分這些值,因爲這三個值中的每一個代表了一個不同的id,它總是隻有1個字符長,即0-9。
Javascript不會將'08'視爲一般的八進制,只有'parseInt'。其他將字符串轉換爲數字的方法也很好,例如, 'Number('08')','+('08')','1 *'08''全部返回'8',而'parseInt('08')'返回'0'。將前導零表示爲八進制是可選的,但大多數瀏覽器似乎仍在繼續實現它。 – RobG
@RobG看到我的小提琴:[https://jsfiddle.net/Lc9ktzn1/](https://jsfiddle.net/Lc9ktzn1/)parseInt將數字解析爲基數10,無論如何。同樣在那個小提琴上 - 如果一個數字有8個,即使它以0開始,它也不能被解釋爲基數8,所以javascript將其作爲基數10。 – Jan
@ Jan - 這是2012年的規格從那以後發生了變化。雖然ES5在2011年6月成爲標準,但大多數瀏覽器都不符合標準,並且在一段時間內繼續遵循ECMA-262的八進制數字行爲。但是,現在ECMA-262第6版是規範,看起來現代瀏覽器至少符合規範。但是仍然有一個很好的數字,其中前導'0'表示parseInt的八進制數。 ;-) – RobG