जेसक्रिप्ट नंबर
- पिछला पृष्ठ जेएस स्ट्रिंग टैम्पलेट
- अगला पृष्ठ जेएस बिगइंट
जेसक्रिप्ट में केवल एक ही संख्या प्रकार है。
संख्या लिखते समय छोटी दूरी लेने या नहीं लेने की आवश्यकता नहीं है。
जेसक्रिप्ट संख्या
JavaScript संख्या को लिखने के लिए दशांश वाला या नहीं वाला दोनों का इस्तेमाल किया जा सकता है:
इंस्टांस
var x = 3.14; // दशांश वाली नंबर var y = 3; // बिना दशांश वाली नंबर
बहुत बड़ी या बहुत छोटी संख्याएं वैज्ञानिक गणना के रूप में लिखी जा सकती है:
इंस्टांस
var x = 123e5; // 12300000 var y = 123e-5; // 0.00123
JavaScript संख्या हमेशा 64 बिट के फ्लॉटिंग पॉइंट होती है
कई अन्य प्रोग्रामिंग भाषाओं के विपरीत, JavaScript अलग-अलग प्रकार की संख्याओं को परिभाषित नहीं करता, जैसे पूर्णांक, छोटे, लंबे, फ्लॉटिंग आदि।
JavaScript संख्या हमेशा डबल पॉइंट फ्लॉटिंग पॉइंट के रूप में संग्रहीत करते हैं, जो अंतर्राष्ट्रीय IEEE 754 मानक के अनुसार है。
इस फॉर्मेट में 64 बिट में संख्या संग्रहीत की जाती है, जिसमें 0 से 51 तक डिजिट (टुकड़े) संग्रहीत किए जाते हैं, 52 से 62 तक इंडेक्स संग्रहीत किए जाते हैं और 63 बिट में सिग्न संग्रहीत किए जाते हैं:
मूल्य(अर्थात् फ्रैक्शन/Mantissa) | इंडेक्स | सिग्न |
---|---|---|
52 bits(0 - 51) | 11 bits (52 - 62) | 1 bit (63) |
दक्षता
पूर्णांक (गैर-एक्सपोनेंट या वैज्ञानिक गणना) 15 डिजिट तक सटीक होते हैं.
इंस्टांस
var x = 999999999999999; // x 999999999999999 होगा var y = 9999999999999999; // y 10000000000000000 होगा
दशांश की अधिकतम संख्या 17 डिजिट है, लेकिन फ्लॉटिंग पॉइंट की गणितीय सटीकता हमेशा 100% नहीं होती:
इंस्टांस
var x = 0.2 + 0.1; // x 0.30000000000000004 होगा
उपरोक्त समस्या को हल करने के लिए गुणा और विभाजन का इस्तेमाल करें:
इंस्टांस
var x = (0.2 * 10 + 0.1 * 10) / 10; // x 0.3 होगा
संख्या और स्ट्रिंग को जोड़ना
चेतावनी!!
JavaScript का जोड़ना और संयोजन (concatenation) दोनों + ऑपरेटर का इस्तेमाल करते हैं.
संख्या को जोड़ने के लिए जोड़ना इस्तेमाल करें. स्ट्रिंग को संयोजन के लिए इस्तेमाल करें.
यदि आप दो संख्याओं को जोड़ते हैं, तो परिणाम एक संख्या होगा:
इंस्टांस
var x = 10; var y = 20; var z = x + y; // z 30 (एक संख्या) होगा
दो स्ट्रिंग को जोड़ने पर, परिणाम एक स्ट्रिंग के संयोजन होगा:
इंस्टांस
var x = "10"; var y = "20"; var z = x + y; // z 1020 (शब्दचित्र) होगा
यदि आप एक संख्या और एक स्ट्रिंग को जोड़ते हैं, तो परिणाम स्ट्रिंग के संयोजन होगा:
इंस्टांस
var x = 10; var y = "20"; var z = x + y; // z एक स्ट्रिंग होगा 1020
यदि आप एक शब्दचित्र और एक संख्या को जोड़ेंगे, तो परिणाम शब्दचित्र जोड़ होगा:
इंस्टांस
var x = "10"; var y = 20; var z = x + y; // z 1020 (शब्दचित्र) होगा
सामान्य गलती यह मानना है कि परिणाम 30 होना चाहिए
इंस्टांस
var x = 10; var y = 20; var z = "The result is: " + x + y;
सामान्य गलती यह मानना है कि परिणाम 102030 होना चाहिए
इंस्टांस
var x = 10; var y = 20; var z = "30"; var result = x + y + z;
JavaScript दायां से बाईं की ओर एकल रूप से संपादित करता है
क्योंकि x और y दोनों संख्या हैं, तो 10 + 20 को जोड़ा जाएगा
क्योंकि z शब्दचित्र है, तो 30 + "30" को जोड़ा जाएगा
संख्या शब्दचित्र
JavaScript शब्दचित्र में संख्या हो सकती है
var x = 100; // x संख्या है var y = "100"; // y शब्दचित्र है
सभी संख्या ऑपरेशनों में, JavaScript शब्दचित्र को संख्या में बदलने की कोशिश करेगा
यह उदाहरण इस तरह चलेगा:
var x = "100"; var y = "10"; var z = x / y; // z 10 होगा
यह उदाहरण भी इस तरह चलेगा:
var x = "100"; var y = "10"; var z = x * y; // z 1000 होगा
यह उदाहरण इस तरह चलेगा:
var x = "100"; var y = "10"; var z = x - y; // z 90 होगा
लेकिन यह उदाहरण इस तरह नहीं चलेगा:
var x = "100"; var y = "10"; var z = x + y; // z 110 नहीं होगा (वरन 10010)
आखिरी उदाहरण में, JavaScript ने + ऑपरेटर के साथ शब्दचित्र को जोड़ा
NaN - गैर-संख्या
NaN
जैसा कि JavaScript के अवधारण की विशेषता है, यह संख्या को वैध संख्या नहीं होने के लिए संकेत करता है
एक गैर-संख्या शब्दचित्र के साथ विभाजन करने के लिए प्रयास करेंगे, तो NaN (Not a Number) मिलेगा:
इंस्टांस
var x = 100 / "Apple"; // x NaN (Not a Number) होगा
फिर भी, यदि शब्दचित्र में आंकड़ा है, तो परिणाम संख्या होगा:
इंस्टांस
var x = 100 / "10"; // x 10 होगा
आप वैश्विक JavaScript फ़ंक्शन का उपयोग कर सकते हैं isNaN()
एक वालीया को संख्या है या नहीं के लिए निश्चित करने के लिए:
इंस्टांस
var x = 100 / "Apple"; isNaN(x); // वास्तव में true बदले, क्योंकि x संख्या नहीं है
सावधान रहें NaN
अगर आप गणितीय सूत्र में NaN
तो परिणाम भी NaN
:
इंस्टांस
var x = NaN; var y = 5; var z = x + y; // z NaN होगा
परिणाम आबोहवा से जुड़ा हो सकता है:
इंस्टांस
var x = NaN; var y = "5"; var z = x + y; // z NaN5 होगा
NaN
एक नंबर है,typeof NaN
वापस करता है number
:
इंस्टांस
typeof NaN; // "number" वापस करता है
Infinity
Infinity
(या -Infinity
)यह JavaScript जब गणना के दौरान बड़े से बड़े संख्या की सीमा से बाहर आता है तो वापस करता है
इंस्टांस
var myNumber = 2; while (myNumber != Infinity) { // Infinity तक चलाए myNumber = myNumber * myNumber; }
0 (शून्य) से विभाजित करने से भी Infinity
:
इंस्टांस
var x = 2 / 0; // x Infinity होगा var y = -2 / 0; // y -Infinity होगा
Infinity
एक नंबर है:typeOf Infinity
वापस करता है number
。
इंस्टांस
typeof Infinity; // "number" वापस करता है
दोश्रष्टक
JavaScript एक अग्रणी 0x से नंबर को 0x
यह नंबर निर्देशांकों को दोश्रष्टक रूप में ताज्जीकी करता है
इंस्टांस
var x = 0xFF; // x 255 होगा
कभी नंबर को अग्रणी शून्य (जैसे 07) के साथ लिखने की कोई आवश्यकता नहीं है
कुछ JavaScript संस्करण अग्रणी शून्यों से नंबर को आठशतक मानते हैं
मूलभूत रूप से, JavaScript नंबर को दसमांकी दशांश रूप में दिखाता है
लेकिन आप इसका उपयोग कर सकते हैं toString()
यह मेथड नंबर को पंद्रहशतक, आठशतक या दोश्रष्टक रूप में आउटपुट करता है。
इंस्टांस
var myNumber = 128; myNumber.toString(16); // वापस 80 देता है myNumber.toString(8); // वापस 200 देता है myNumber.toString(2); // वापस 10000000 देता है
नंबर एक आबेेदन भी हो सकता है
सामान्यतया JavaScript में नंबर नापसंद बदले के माध्यम से बनाए जाते हैं: var x = 123
लेकिन इसे अभी भी क्लीवर्ड के द्वारा किया जा सकता है नया
ऑब्जेक्ट के रूप में परिभाषित: var y = new Number(123)
इंस्टांस
var x = 123; var y = new Number(123); // typeof x नंबर रिटर्न करता है // typeof y ऑब्जेक्ट रिटर्न करता है
कृपया न संख्या ऑब्जेक्ट बनाएं।इससे कार्यवाही की गति धीमी हो सकती है。
नया
क्लीवर्ड को कोड को जटिल बनाता है और कुछ अप्रत्याशित परिणाम पैदा करता है:
जब आप ==
समान ऑपरेटर के समय, समान संख्याएँ दिखती हैं:
इंस्टांस
var x = 500; var y = new Number(500); // (x == y) सही है क्योंकि x और y के मूल्य समान हैं
जब आप ====
समान ऑपरेटर के बाद, समान संख्याएँ असमान हो जाती हैं क्योंकि ====
ऑपरेटर को प्रकार और मूल्य दोनों के लिए समान होना चाहिए。
इंस्टांस
var x = 500; var y = new Number(500); // (x === y) त्रुटि है क्योंकि x और y के प्रकार अलग हैं
यहाँ तक कि बेहतर भी।ऑब्जेक्ट को तुलना नहीं किया जा सकता:
इंस्टांस
var x = new Number(500); var y = new Number(500); // (x == y) त्रुटि है क्योंकि ऑब्जेक्ट को तुलना नहीं किया जा सकता
जावास्क्रिप्ट ऑब्जेक्ट तुलना करने वाले नहीं हैं。
- पिछला पृष्ठ जेएस स्ट्रिंग टैम्पलेट
- अगला पृष्ठ जेएस बिगइंट