TypeScript में `truthy` और `falsy`

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 के रूप में माना जाता है:।

  1. संख्या 0
  2. "" (खाली स्ट्रिंग)

सभी अन्य मानों को 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 चैनल को भी देखें।

YouTube Video