"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं जावास्क्रिप्ट में पार्सइंट के ऑक्टल इंटरप्रिटेशन मुद्दों से कैसे बच सकता हूं?

मैं जावास्क्रिप्ट में पार्सइंट के ऑक्टल इंटरप्रिटेशन मुद्दों से कैसे बच सकता हूं?

2024-12-22 को प्रकाशित
ब्राउज़ करें:488

How Can I Avoid parseInt's Octal Interpretation Issues in JavaScript?

जावास्क्रिप्ट का ऑक्टल संकट: पार्सइंट के दुर्व्यवहार के लिए समाधान

जावास्क्रिप्ट का पार्सइंट फ़ंक्शन अग्रणी शून्य के साथ संख्याओं का सामना करते समय लड़खड़ा सकता है। यह समस्या अग्रणी शून्य को अष्टक अंकों के रूप में व्याख्या करने की प्रवृत्ति से उत्पन्न होती है, जिससे गलत परिणाम सामने आते हैं।

उदाहरण:

parseInt('01'); // 1
parseInt('08'); // 0 (invalid octal digit)

समाधान:

  • आधार निर्दिष्ट करें (मूलांक)

सबसे सीधा समाधान संख्या का आधार, या मूलांक स्पष्ट रूप से प्रदान करना है। यह parseInt के दूसरे पैरामीटर का उपयोग करके किया जा सकता है:

parseInt('08', 10); // 8 (specifying base 10)
  • नंबर कंस्ट्रक्टर का उपयोग करें

वैकल्पिक रूप से, नंबर कंस्ट्रक्टर का उपयोग संख्याओं को पार्स करने के लिए किया जा सकता है, जिसमें वे भी शामिल हैं अग्रणी शून्य:

Number('08'); // 8
  • बेस 10 स्ट्रिंग में कनवर्ट करें

एक अन्य तरीका स्ट्रिंग को पार्स करने से पहले बेस 10 में कनवर्ट करना है:

parseInt(parseInt('08', 8).toString(), 10); // 8 (convert octal to base 10)
  • नियमित अभिव्यक्ति का उपयोग करें

अग्रणी शून्य को हटाने के लिए नियमित अभिव्यक्ति का उपयोग किया जा सकता है:

parseInt(/^0 (.*)$/gm('008')); // 8 (match and capture non-zero digits)

नोट:

जावास्क्रिप्ट के 5वें संस्करण (ईसीएमए-262) में, पार्सइंट का व्यवहार बदल गया है, समाप्त हो गया है अष्टक व्याख्या मुद्दा. हालाँकि, जावास्क्रिप्ट के पुराने संस्करणों के साथ अनुकूलता के लिए, अग्रणी शून्य वाली संख्याओं का सामना करते समय ऊपर उल्लिखित वर्कअराउंड में से एक का उपयोग करने की अनुशंसा की जाती है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3