Number Range and NaN – Not a Number

Number Range

JavaScript में किसी Variable में Store की जा सकने वाली सबसे छोटी संख्‍या को Number.MIN_VALUE Constant द्वारा प्राप्त कर सकते हैं, जो लगभग सभी Web Browsers में 5e-324 के बराबर होती है। जबकि किसी Variable में Store की जा सकने वाली सबसे बडी संख्‍या को Number.MAX_VALUE Constant द्वारा प्राप्त किया जा सकता है, जो लगभग सभी Web Browsers में 1.7976931328623157e308 के बराबर होती है।

यदि Calculation के बाद कोई संख्‍या इस Range से बाहर होती है तो JavaScript उस संख्‍या को Represent करने में सक्षम नहीं होता। इस स्थिति में JavaScript Infinity शब्द द्वारा उस Value को Represent करता है। जब ऐसी संख्‍या Negative होती है तो JavaScript उसे –Infinitive शब्द से Represent करता है जबकि संख्‍या के Positive होने की स्थिति में केवल Infinity शब्द Use होता है।

किसी भी Calculation के बाद यदि Infinity या –Infinity Return होता है, तो उस Value को किसी भी अन्‍य Calculation में Use नहीं किया जा सकता क्योंकि Infinity का कोई Numeric Representation नहीं होता।

किसी Variable में Infinity Value है या नहीं, इस बात का पता लगाने के लिए हम isFinite() Function का प्रयोग कर सकते हैं। यदि Argument के रूप में वह Value या Variable लेता है, जिसे Check करना है और Output के रूप में true अथवा false मान Return करता है। जैसे-

[code] var val = Number.MAX_VALUE + 2;

alert(isFinite(val)); // Output: false [/code]

वैसे ऐसी Calculation जो कि Infinity Return करे, बहुत ही Rare होती है। किसी Infinity Number के Sign का पता लगाने के लिए हम Number.NEGATIVE_INFINITYNumber.POSITIVE_INFINITY Properties का भी प्रयोग कर सकते हैं और इनमें –Infinity या Infinity मान Stored रहता है।

NaN – Not a Number

ये एक Special Value है जो “Not a Number” की Short Form है और इसका प्रयोग इस बात को Indicate करने के लिए किया जाता है कि Return होने वाला मान कोई Number Value नहीं है।

उदाहरण के लिए किसी संख्‍या में 0 का भाग देने पर सामान्‍यत: विभिन्न Programming Languages में Error Generate होता है, जबकि JavaScript में NaN Return होता है।

NaN के साथ की जाने वाली कोई भी Processing हमेंशा फिर से NaN मान ही Return करता है और NaN किसी Value के बराबर नहीं होता। यानी

[code]
alert(NaN == NaN);      //Output: false 
[/code]

इसीलिए ECMAScript हमें isNaN() नाम का एक Function Provide करता है, जिसका प्रयोग करके हम ये पता लगा सकते हैं कि Specify किया गया मान NaN है या नहीं। जब इस Function में किसी मान को Argument के रूप में Pass किया जाता है, तब ये Function सबसे पहले उस मान को Boolean Value में Convert करने की कोशिश करता है।

जब Argument के रूप में Pass किया गया मान किसी भी प्रकार के Number मान में Convert होने में सक्षम नहीं होता, तब ये Function true Return करता है जो इस बात का Indication होता है कि Argument के रूप में Pass किया गया मान कोई Number नहीं है। जैसे-

[code]
alert(isNaN(NaN));      //true
alert(isNaN(10));       //false - 10 is a number
alert(isNaN(“10”));     //false - can be converted to number 10
alert(isNaN(“blue”));   //true - cannot be converted to a number
alert(isNaN(true));     //false - can be converted to number 1
[/code]

उपरोक्त उदाहरणों से हम समझ सकते हैं कि NaN,“blue” कोई Number नहीं हैं, इसलिए ये Function इन मानों के लिए false Return करता है, जबकि 10, String “10”true ऐसे मान हैं, जिन्हें Number में Convert किया जा सकता है। इसलिए isNaN() Function इन मानों के लिए true Return करता है।

सामान्‍यत: isNaN() Function को Objects के साथ Use नहीं किया जाता। लेकिन यदि किसी स्थिति में किसी Object को इस Function में Pass किया जाए, तो सबसे पहले उस Object के लिए valueOf() Method Call होता है, जो इस बात को Check करता है कि Object के मान को Number में Convert किया जा सकता है या नहीं।

यदि Number में Convert नहीं किया जा सकता, तो फिर toString() Method Call होता है जो इस बात को Check करता है कि Object के मान को String में Convert किया जा सकता है या नहीं। यदि किसी भी तरीके से किसी Object के Data को Number में Convert नहीं किया जा सकता, तो ये Function true Return करता है अन्‍यथा false Return करता है।

Advavnce JavaScript in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Advance JavaScript in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

Advance JavaScript in Hindi | Page: 669 | Format: PDF

BUY NOW GET DEMO REVIEWS