2012-08-02 28 views
15

संभव डुप्लिकेट दे रहा है:
Workarounds for JavaScript parseInt octal bugक्यों parseInt ('08 ') 0 दे रहा है, जबकि parseInt ('07') 7

मैं जावास्क्रिप्ट पर काम कर रहा हूँ, और मैं यह अजीब लगता है कि जावास्क्रिप्ट फ़ंक्शन parseInt ('08 ') 0 लौटा रहा है और parseInt ('07') वापस आ रहा है 7.

यह व्यवहार फ़ायरफ़ॉक्स में मौजूद प्रतीत होता है।

parseInt ('08 ') IE में 8 लौट रहा है, लेकिन फ़ायरफ़ॉक्स में 0 ..

क्यों? मैं parseInt ('08 ') 8 की वापसी के लिए चाहता हूं, जैसा कि अपेक्षित और आईई में हो रहा है।

उत्तर

32

हाँ, मैं पहले इस पर आया था। यह वास्तव में अजीब है, क्योंकि कुछ ब्राउज़रों आप आधार में यह पार्स करने के लिए 8. निम्न आलेख पर विचार करें चाहने के रूप में इस व्याख्या:

:

http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256C85006A6604

मूल रूप से, आप आधार 10 नंबरों का उपयोग करने पार्सर बताने के लिए है

parseInt('08', '10'); 
+3

'parseInt ('08 ',' 10 ');'? वास्तव में? आम तौर पर हम केवल '+ "08" 'करेंगे, क्योंकि स्ट्रिंग के सामने' + 'जोड़ना किसी भी समस्या के बिना इसे संख्या में बदल देगा। –

+1

हैक भी काम करेंगे – AceCorban

+0

@Derik Post hoc ergo propter hoc – lededje

संबंधित मुद्दे