संख्या की वैल्यू, संख्या वाले वर्णों की किसी भी सीरीज़ से मिलकर बनती है. उदाहरण के लिए:
5
संख्या वाले डेटा टाइप में कुछ खास ग्लोबल प्रॉपर्टी भी शामिल होती हैं
Infinity
और NaN
जैसे न्यूमेरिक कॉन्सेप्ट को दिखाते हैं—एक वैल्यू का मतलब होता है
"यह नंबर नहीं है," गणित के सवाल हल करने की कोशिश का संभावित नतीजा
बिना संख्या वाली वैल्यू के लिए कैलकुलेशन.
संख्या ऑब्जेक्ट
जब Number()
फ़ंक्शन को कोई मान पास किया जाता है, तो वह मान
संख्या के बराबर. उदाहरण के लिए, संख्या वाली स्ट्रिंग से इसके बराबर मिलती है
बुनियादी संख्या:
Number( "10" );
> 10
false
या null
की वैल्यू को Number()
पर पास करने पर, 0
और true
वैल्यू के तौर पर रिटर्न किया जाता है
1
.
Number( null );
> 0
Number( false );
> 0
Number( true );
> 1`
अगर किसी वैल्यू को बदला नहीं जा सकता, जैसा कि undefined
या किसी स्ट्रिंग में होता है
बिना अंक वाले वर्ण शामिल होने पर, Number
फ़ंक्शन NaN
दिखाता है:
Number( undefined );
> NaN
Number( "The number 3." );
> NaN
जैसा कि प्रोटोटाइप इनहेरिटेंस में बताया गया है,
आपके पास Number
ऑब्जेक्ट को
कंस्ट्रक्टर की तरह काम करता है, क्योंकि यह लिटरल संख्या के बजाय Number
ऑब्जेक्ट बनाता है.
let numObject = new Number( 15 );
numObject;
> Number { 15 }
यह ऑब्जेक्ट, गणितीय संक्रियाओं के लिए असाइन की गई वैल्यू की तरह ही काम करता है, लेकिन संख्या की लिटरल वैल्यू के ख़िलाफ़ सख्त बराबरी की तुलना नहीं हो पाती, क्योंकि डेटा टाइप लिटरल वैल्यू के मुकाबले कोई असल फ़ायदा दिए बिना, मैच नहीं करता.
let tenObject = new Number( 10 );
tenObject + 5;
> 15
tenObject === 10;
> false
फ़्लोट और पूर्णांक
JavaScript में सिर्फ़ एक नंबर टाइप होता है: 64-बिट IEEE 754-1985 डबल सटीक
फ़्लोटिंग-पॉइंट नंबर
-2^1024
और 2^1024
. JavaScript की मेमोरी में किसी संख्या को सेव करने से पहले,
उस संख्या को बाइनरी फ़्लोटिंग-पॉइंट नंबर में बदल देता है. इसे फ़्लोट भी कहा जाता है.
यह 64-बिट स्टोरेज (एक पॉज़िटिव या नेगेटिव "साइन" बिट, घातांक, और किसी भिन्न के लिए 52 बिट) किसी भी संख्या के साथ सटीक गड़बड़ी पैदा कर सकते हैं के अंक डालें जो किसी अनुमत सीमा के अंदर नहीं आते. यह सीमा स्वाभाविक है की संख्या को JavaScript की संख्या डेटा टाइप में बदलना होता है.
0.1 + 0.7
> 0.7999999999999999
इसके बजाय, किसी संख्या वैल्यू को इंटिजर, फ़्लोटिंग-पॉइंट नंबर के तौर पर सेव किया जा सकता है
-(2^53 − 1)
और 2^53 − 1
के बीच का कोई अंश नहीं. क्योंकि फ़्लोट करता है और
पूर्णांकों को समान बुनियादी तरीके से स्टोर किया जाता है. इनमें कोई व्यावहारिक अंतर नहीं होता
लोग कैसे काम करते हैं. हालांकि, हमारा सुझाव है कि जब भी संभव हो,
सटीक जानकारी की गड़बड़ियों से बचा जा सकता है.
नंबर ऑपरेटर
जब नंबर प्रिमिटिव वाले स्टैंडर्ड मैथमैटिकल ऑपरेटर का इस्तेमाल किया जाता है, तो गणितीय संक्रियाओं का क्रम लागू होता है: कोष्ठक में रैप किए गए सभी एक्सप्रेशन का पहले आकलन किया जाता है. इसके बाद, घातांक, गुणा, भाग, जोड़, और घटाव.
ऑपरेटर | नाम | ब्यौरा | इस्तेमाल | नतीजा |
---|---|---|---|---|
+ |
जोड़ | 2+2 |
4 |
|
- |
घटाव | 4-2 |
2 |
|
* |
गुणन | 2*5 |
10 |
|
/ |
डिवीज़न | 10/5 |
2 |
|
++ |
वृद्धि | किसी नंबर में एक जोड़ता है | 2++ |
3 |
-- |
कमी | किसी संख्या से एक घटाता है | 3-- |
2 |
** |
घातांक | यह फ़ंक्शन, पहली को बढ़ाने का नतीजा दिखाता है दूसरे ऑपरेंड की शक्ति तक काम करता है. |
2**4 |
16 |
% |
शेष | जब होता है, तो बाकी का बचा हुआ आइटम लौटाता है पहले ऑपरेंड को दूसरे ऑपरेंड से भाग दिया जाता है. |
12%5 |
2 |
गणित के सवाल हल करने के लिए, असाइनमेंट ऑपरेटर का इस्तेमाल भी किया जा सकता है और तुरंत उसे असाइन करें वैरिएबल के लिए कैलकुलेट की गई नई वैल्यू.
ऑपरेटर | नाम | इस्तेमाल |
---|---|---|
+= |
जोड़ असाइनमेंट | myValue += 2 |
-= |
घटाव असाइनमेंट | myValue -= 2 |
*= |
गुणा का असाइनमेंट | myValue *= 2 |
/= |
डिवीज़न असाइनमेंट | myValue /= 2 |
**= |
घातांक असाइनमेंट | myValue **= 2 |
%= |
बचे हुए डेटा को असाइन करना | myValue %= 2 |
सिम्बॉलिक वैल्यू
प्रिमिटिव संख्या कुछ खास मामलों पर भी लागू होती है: "कोई संख्या नहीं"
वैल्यू (NaN
) और अनंत संख्या दिखाने वाली वैल्यू, जो कि पॉज़िटिव हो सकती है
(Infinity
) या नेगेटिव (-Infinity
).
एक केस, शून्य से विभाजित करने पर आपको शायद ही कभी Infinity
मिल सकता है
जिसमें ज़्यादातर प्रोग्रामिंग भाषाएं इसके बजाय गड़बड़ी की सूचना देती हैं:
10 / 0
> Infinity
याद रखें कि JavaScript केस-सेंसिटिव (बड़े और छोटे अक्षरों में अंतर) होता है. Infinity
, संख्या वाला डेटा टाइप है
अनंतता के सिद्धांत को दिखाता है, लेकिन infinity
का कोई खास मतलब नहीं है:
Infinity
> Infinity
infinity
> Uncaught ReferenceError: infinity is not defined
NaN
(जिसका मतलब है "नंबर नहीं है")
ज़्यादा बार दिखाया जाता है, उन मामलों में जब अंकगणितीय संक्रिया का नतीजा मिलता है
को संख्या के रूप में नहीं दिखाया जा सकता. उदाहरण के लिए, क्योंकि JavaScript यह पता लगाने की कोशिश करता है कि
वैल्यू और कॉन्टेक्स्ट से मिलने वाला डेटा टाइप, स्ट्रिंग की लिटरल वैल्यू होती है जिसमें सिर्फ़ संख्या
इनका इस्तेमाल गणितीय प्रक्रिया में किया जाएगा:
"2" * 2;
> 4
हालांकि, यदि उस स्ट्रिंग को संख्या मान के रूप में पार्स नहीं किया जा सकता तो गणितीय संक्रिया के परिणाम गैर-संख्या में होते हैं:
"two" * 2;
> NaN
अमान्य वैल्यू को ऐसे किसी भी मामले में NaN
दिखाया जाता है जिसे संख्या के तौर पर दिखाया जाता है
एक गणितीय सवाल है. उदाहरणों में ये शामिल हैं:
- असफल कन्वर्ज़न की संख्या (उदाहरण के लिए,
parseInt( undefined )
) - अंकगणित की संक्रियाएं जहां नतीजा कोई वास्तविक संख्या नहीं है (उदाहरण के लिए,
0 / 0
,Math.sqrt( -10 )
) - ऐसी अंकगणितीय कार्रवाई जिसमें तय न किया गया नतीजा होता है (
0 * Infinity
) - अंकगणित की ऐसी कार्रवाई जिसमें साफ़ तौर पर
NaN
(NaN + 2
) या एकNaN
नतीजा (2 * "string" / 2
)
देखें कि आपको कितना समझ आया है
false
को Number()
पास करने का क्या नतीजा होता है?
गणित के इस तरीके का क्या नतीजा होता है?
"Six" * 3