TypeScript में `truthy` और `falsy`
इस लेख में, हम TypeScript में truthy
और falsy
की व्याख्या करेंगे।
YouTube Video
TypeScript में truthy
और falsy
TypeScript में truthy
और falsy
की अवधारणाएँ प्रोग्राम की शर्तीय कथन (conditional statements) में बहुत महत्वपूर्ण भूमिका निभाती हैं। यहाँ, हम इन अवधारणाओं को विस्तार से समझाएंगे और यह कैसे उपयोग में लाई जाती हैं। साथ ही, हम TypeScript कोड के विशेष उदाहरण प्रदान करेंगे ताकि यह समझा जा सके कि truthy
और falsy
मानों को कैसे संभाला जाता है।
truthy
और falsy
क्या हैं?
JavaScript और TypeScript में, किसी भी मान का मूल्यांकन एक शर्तीय अभिव्यक्ति (conditional expression) में true (true
) या false (false
) के रूप में किया जाता है। इन मानों को तर्कसंगत रूप से truthy
या falsy
के रूप में वर्गीकृत किया गया है।
truthy
वे मान होते हैं जिन्हें शर्तीय अभिव्यक्तियों मेंtrue
के रूप में आंका जाता है।falsy
वे मान होते हैं जिन्हें शर्तीय अभिव्यक्तियों मेंfalse
के रूप में आंका जाता है।
TypeScript में, निम्नलिखित मानों को falsy
के रूप में माना जाता है:।
- संख्या
0
""
(खाली स्ट्रिंग)
सभी अन्य मानों को truthy
के रूप में माना जाता है।
truthy
और falsy
के विशिष्ट उदाहरण
1// Examples of falsy values
2console.log("0 is", Boolean(0) ? "truthy" : "falsy");
3console.log('"" is', Boolean("") ? "truthy" : "falsy");
4console.log("null is", Boolean(null) ? "truthy" : "falsy");
5console.log("undefined is", Boolean(undefined) ? "truthy" : "falsy");
6console.log("NaN is", Boolean(NaN) ? "truthy" : "falsy");
7
8// Examples of truthy values
9console.log("1 is", Boolean(1) ? "truthy" : "falsy");
10console.log('"hello" is', Boolean("hello") ? "truthy" : "falsy");
11console.log("[] is", Boolean([]) ? "truthy" : "falsy");
12console.log('" " (space) is', Boolean(" ") ? "truthy" : "falsy");
truthy
और falsy
का उपयोग करते हुए शर्तें
Truthy
और Falsy
की अवधारणाओं का अक्सर शर्तीय कथन और लूप में उपयोग किया जाता है। उदाहरण के लिए, if
कथन या while
लूप में, आप इन मानों को सीधे सरल शर्तीय मूल्यांकन के लिए उपयोग कर सकते हैं।
1// Checking if the length of the array is 0
2let items: string[] = [];
3
4if (items.length) {
5 console.log("The array is not empty");
6} else {
7 console.log("The array is empty");
8}
9
10// Checking if the input value is empty
11let input = "";
12
13if (input) {
14 console.log("Input has value");
15} else {
16 console.log("Input is empty"); // This will be executed
17}
falsy
मानों को ??
(नलिश कोलेसिंग) और ||
(तार्किक OR) के साथ संभालना
TypeScript में, कई ऑपरेटर उपलब्ध हैं जो falsy
मानों से निपटने में उपयोगी होते हैं। विशेष रूप से, Nullish Coalescing ऑपरेटर (??
) और तार्किक OR ऑपरेटर (||
) का सामान्यतः उपयोग होता है।
||
(Logical OR)
तार्किक OR ऑपरेटर का उपयोग falsy
मानों को एक डिफ़ॉल्ट मान से बदलने के लिए किया जाता है। हालांकि, सभी falsy
मानों को टारगेट किया जाता है (केवल null
या undefined
ही नहीं, बल्कि 0
, ""
आदि भी)।
1let username = "";
2let displayName = username || "Guest"; // Since username is empty, "Guest" is assigned
3
4console.log(displayName); // "Guest"
??
(Nullish Coalescing)
Nullish Coalescing ऑपरेटर केवल null
या undefined
पर डिफ़ॉल्ट मान लागू करता है, और अन्य falsy
मानों (जैसे 0
या ""
) को अपरिवर्तित छोड़ देता है।
1let username2 = "";
2let displayName2 = username2 ?? "Guest";
3// The empty string is retained
4// since username2 is not null or undefined
5
6console.log(displayName2); // ""
truthy
और falsy
से संबंधित चुनौतियां
truthy
और falsy
को समझते समय एक मुख्य बिंदु जिस पर ध्यान देना ज़रूरी है, वह यह है कि अनचाहे मानों को falsy
माना जा सकता है। उदाहरण के लिए, 0
और खाली स्ट्रिंग्स ""
वैध मान हैं, लेकिन कंडीशनल स्टेटमेंट्स में इन्हें falsy
माना जाता है, जिससे गलत मूल्यांकन हो सकता है।
1let score = 0;
2
3if (score) {
4 console.log("You have a score!"); // This will not be executed
5} else {
6 console.log("No score available"); // This will be executed
7}
ऐसे मामलों में, सख्त तुलना ऑपरेटरों का उपयोग आपको सही तरीके से 0
और false
जैसे मानों में भेद करने की अनुमति देता है।
1let score = 0;
2
3if (score === 0) {
4 console.log("Score is zero"); // Correctly evaluated
5}
falsy
और NaN
से संबंधित गड़बड़ियां
NaN
को विशेष प्रबंधन की आवश्यकता होती है क्योंकि यह तुलना ऑपरेटरों का उपयोग करते समय, अपने आप से भी, किसी भी मान के बराबर नहीं होता।
1console.log("NaN === NaN:", NaN === NaN); // false
इसलिए, NaN
का सटीक पता लगाने के लिए Number.isNaN()
का उपयोग करना अधिक सुरक्षित है।
1// Bad Example
2let value = parseInt("0");
3if (!value) {
4 console.log("Value is NaN"); // Incorrectly treats 0 as NaN
5}
6
7// Good Example
8let value2 = parseInt("hello");
9if (Number.isNaN(value2)) {
10 console.log("Value is NaN"); // Correctly identifies NaN
11}
इस तरह, NaN
अपने आप से भी बराबर नहीं है, इसलिए NaN
के साथ तुलना हमेशा false
लौटाती है। Number.isNaN()
का उपयोग करके, आप अधिक विश्वसनीय जांच कर सकते हैं।
निष्कर्ष
TypeScript में truthy
और falsy
की अवधारणाएं बहुत सुविधाजनक हैं, लेकिन आपको कुछ मानों, विशेष रूप से 0
और खाली स्ट्रिंग्स, के साथ सतर्क रहने की ज़रूरत है। इन मानों का शर्तीय जांचों में उपयोग करते समय, ढीली तुलना (==
) के बजाय सख्त तुलना (===
) या Nullish Coalescing ऑपरेटर (??
) का उपयोग करना अप्रत्याशित व्यवहार से बचने में मदद कर सकता है।
आप हमारे YouTube चैनल पर Visual Studio Code का उपयोग करके ऊपर दिए गए लेख के साथ आगे बढ़ सकते हैं। कृपया YouTube चैनल को भी देखें।