फ़ंक्शन isFinite
फ़ंक्शन isFinite पैरामीटर की यह जांच करने के लिए है
कि क्या वह एक सीमित संख्या है (यानी
स्ट्रिंग, ऐरे आदि नहीं और न ही प्लस
या माइनस अनंत)।
यह फ़ंक्शन कैसे काम करता है: यह false लौटाएगा,
यदि संख्या प्लस या माइनस अनंत है
(यानी Infinity)
या संख्या नहीं है (यानी NaN),
अन्य सभी मामलों में यह true लौटाएगा।
यानी स्ट्रिंग्स, ऐरे आदि को परिवर्तित कर दिया जाएगा
NaN में और तदनुसार false लौटाएंगे।
हालांकि अपवाद हैं: खाली स्ट्रिंग
'' true लौटाती है, रिक्ति वाली स्ट्रिंग ' '
भी true लौटाती है, null
true लौटाता है, मान true और false
के लिए भी true लौटाया जाता है।
ऐसा इसलिए होता है क्योंकि ये मान
संख्याओं में परिवर्तित हो जाते हैं, NaN में नहीं।
यदि आपको वास्तव में एक सटीक संख्या की जांच
की आवश्यकता है, जो रिक्ति वाली स्ट्रिंग,
बूलियन और विशेष मानों को संख्या नहीं मानती
- निम्नलिखित फ़ंक्शन isNumeric का उपयोग करें:
function isNumeric(num) {
return !isNaN(parseFloat(num)) && isFinite(num);
};
आइए समझते हैं कि यह कैसे काम करता है।
फ़ंक्शन isFinite पैरामीटर को
एक संख्या में बदल देता है और true लौटाता है,
यदि यह Infinity,
-Infinity या NaN नहीं है।
इस प्रकार, दायां भाग स्पष्ट रूप से
गैर-संख्याओं को छांट देगा, लेकिन ऐसे मान
जैसे true, false, null, खाली स्ट्रिंग '' और
रिक्ति वाली स्ट्रिंग को छोड़ देगा, क्योंकि वे सही ढंग से परिवर्तित हो जाते हैं
संख्याओं में।
इन मानों को छांटने के लिए, फ़ंक्शन
parseFloat की आवश्यकता होती है,
जो true, false, null, '', ' '
के लिए NaN लौटाएगी। फ़ंक्शन parseFloat इस तरह से बनाया गया है: यह
पैरामीटर को स्ट्रिंग में बदल देता है, यानी true,
false, null, 'true', 'false',
'null' बन जाते हैं, और फिर इसमें से संख्या पढ़ता है,
इस दौरान खाली स्ट्रिंग और रिक्ति वाली स्ट्रिंग
NaN देती हैं। फिर parseFloat का परिणाम
!isNaN का उपयोग करके संसाधित किया जाता है,
ताकि NaN के बजाय true या false प्राप्त हो सके।
परिणामस्वरूप, संख्या-स्ट्रिंग्स
और सामान्य संख्याओं को छोड़कर सब कुछ छांट दिया जाता है।
सिंटैक्स
isFinite(मान);
उदाहरण
अब isFinite true आउटपुट करेगा,
क्योंकि पैरामीटर एक संख्या है:
let num = 3;
console.log(isFinite(num));
कोड निष्पादन का परिणाम:
true
उदाहरण
अब isFinite false आउटपुट करेगा,
क्योंकि पैरामीटर एक संख्या नहीं है:
let num = 'abcde';
console.log(isFinite(num));
कोड निष्पादन का परिणाम:
false
उदाहरण
अब isFinite false आउटपुट करेगा,
क्योंकि पैरामीटर अनंत है:
let num = Infinity;
console.log(isFinite(num));
कोड निष्पादन का परिणाम:
false
उदाहरण
अब isFinite false आउटपुट करेगा,
क्योंकि 1/0 - यह अनिवार्य रूप से Infinity
(अनंत) है:
let num = 1 / 0;
console.log(isFinite(num));
कोड निष्पादन का परिणाम:
false
उदाहरण
अब isFinite true आउटपुट करेगा,
क्योंकि खाली स्ट्रिंग, जो एक संख्या नहीं है,
- एक अपवाद है:
let num = '';
console.log(isFinite(num));
कोड निष्पादन का परिणाम:
true