जावास्क्रिप्ट में रैपर ऑब्जेक्ट्स

जावास्क्रिप्ट में रैपर ऑब्जेक्ट्स

यह लेख जावास्क्रिप्ट में रैपर ऑब्जेक्ट्स के बारे में बताता है।

YouTube Video

व्रैपर वस्तुएँ (Wrapper Objects)

जावास्क्रिप्ट में प्रिमिटिव प्रकार और उन्हें प्रबंधित करने के लिए ऑब्जेक्ट्स होते हैं (रैपर ऑब्जेक्ट्स)।

प्राथमिक प्रकार (Primitive Types)

प्रिमिटिव प्रकार एक सिंगल वैल्यू का प्रतिनिधित्व करते हैं और साधारण तथा हल्के होते हैं। ये अपरिवर्तनीय (बदलाव के योग्य नहीं) हैं और इनमें सीधे तौर पर ऑब्जेक्ट मेथड्स या प्रॉपर्टीज़ नहीं होतीं, लेकिन इन्हें संचालन के लिए अस्थायी रूप से रैपर ऑब्जेक्ट्स में बदला जा सकता है।

string और number प्रिमिटिव प्रकार के उदाहरण हैं। दूसरी ओर, रैपर ऑब्जेक्ट्स बड़े अक्षर से शुरू होते हैं, जैसे String और Number

रैपर ऑब्जेक्ट्स

मूल प्रकारों को नियंत्रित करने के लिए, जावास्क्रिप्ट अस्थायी रूप से आवरण ऑब्जेक्ट (Objectwrappers) उत्पन्न करता है। आवरण ऑब्जेक्ट में प्राइमिटिव प्रकारों के लिए विधियाँ और गुण होते हैं।

Number

1let numObject = new Number(42);   // Wrapper object
2
3console.log(typeof numObject);    // object
4console.log(numObject.valueOf()); // 42
5
6let numValue = Number(42);        // Return primitive value
7
8console.log(typeof numValue);     // number
9console.log(numValue);            // 42
  • Number एक ऑब्जेक्ट प्रकार है जो प्राइमिटिव number को रैप करता है।। एक Number ऑब्जेक्ट को स्पष्ट रूप से बनाकर, आप अंकों को एक number की तरह नियंत्रित कर सकते हैं, लेकिन आम तौर पर प्राइमिटिव number प्रकार का उपयोग करने की सिफारिश की जाती है।

typeof numObject "object" है, लेकिन typeof 42 "number" है।

  • ध्यान दें कि नई ऑपरेटर का उपयोग करके एक नया आवरण ऑब्जेक्ट बनाने का परिणाम, एक फ़ंक्शन के रूप में Number को कॉल करने से अलग होता है। जब इसे एक फ़ंक्शन के रूप में कॉल किया जाता है, तो एक प्रिमिटिव number वापस मिलता है।

String

1let strObject = new String("Hello"); // Wrapper object
2
3console.log(typeof strObject);    // object
4console.log(strObject.valueOf()); // Hello
  • यह एक ऑब्जेक्ट प्रकार है जो एक प्राइमिटिव string को रैप करता है।String ऑब्जेक्ट का उपयोग करके, आप स्ट्रिंग के गुण और विधियों तक पहुंच सकते हैं, लेकिन आम तौर पर एक प्राइमिटिव string का उपयोग किया जाता है।

typeof strObject "object" है, लेकिन typeof "Hello" "string" है।

  • Number की तरह, एक फ़ंक्शन के रूप में String को कॉल करने पर एक प्राइमिटिव string लौटता है।

Boolean

1let boolObject = new Boolean(true); // Wrapper object
2
3console.log(typeof boolObject);    // object
4console.log(boolObject.valueOf()); // true
  • यह एक ऑब्जेक्ट प्रकार है जो एक प्राइमिटिव boolean को रैप करता है।। आप स्पष्ट रूप से एक Boolean ऑब्जेक्ट भी बना सकते हैं, लेकिन आम तौर पर एक प्राइमिटिव boolean प्रकार का उपयोग किया जाता है।

typeof boolObject "object" है, लेकिन typeof true "boolean" है।

  • Number के समान, एक फ़ंक्शन के रूप में Boolean को कॉल करने पर एक प्राइमिटिव boolean लौटता है।

BigInt

 1let bigIntObject = Object(9007199254740991n); // Wrapper object
 2
 3console.log(typeof bigIntObject);    // object
 4console.log(bigIntObject.valueOf()); // 9007199254740991n
 5
 6let bigIntValue = BigInt(9007199254740991);   // Return primitive BigInt
 7
 8console.log(typeof bigIntValue);     // bigint
 9console.log(bigIntValue);            // 9007199254740991n
10
11// Error
12let bigIntObject2 = new BigInt(9007199254740991n);
  • Objectを使ってBigIntのラッパーオブジェクトを生成できますが、通常はプリミティブ型のbigintを直接使うのが一般的です。

typeof bigIntObject"object"であるのに対し、typeof 9007199254740991n"bigint"です。

  • BigIntを関数として呼び出すとプリミティブなbigintを返しますが、new演算子をつけてBigIntのラッパーオブジェクトを生成することはできません。

Symbol

1let symObject = Object(Symbol("id")); // Wrapper object for Symbol
2
3console.log(typeof symObject);    // object
4console.log(symObject.valueOf()); //
  • आप Symbol के लिए एक रैपर ऑब्जेक्ट बनाने के लिए Object का उपयोग कर सकते हैं, लेकिन आम तौर पर आप सीधे Symbol प्राइमिटिव प्रकार का उपयोग करते हैं।

मूल प्रकार और आवरण ऑब्जेक्ट के बीच अंतर

  • मूल प्रकार हल्के और स्मृति-कुशल होते हैं, लेकिन इनमें सीधे गुण या विधियाँ नहीं होती हैं। हालांकि, जावास्क्रिप्ट में, यहां तक कि प्राइमिटिव प्रकार के साथ भी, आवश्यकतानुसार विधियाँ और गुण प्रदान करने के लिए अस्थायी आवरण ऑब्जेक्ट स्वचालित रूप से बनाए जाते हैं।
1let text = "Hello";
2
3// A temporary String object is created,
4// allowing access to the length property
5console.log(text.length);
  • आवरण ऑब्जेक्ट स्पष्ट रूप से उत्पन्न किए गए ऑब्जेक्ट होते हैं जो स्मृति और प्रदर्शन को प्रभावित कर सकते हैं, इसलिए आम तौर पर प्राइमिटिव प्रकारों का उपयोग करने की सिफारिश की जाती है।

निष्कर्ष

  • प्रिमिटिव प्रकार: हल्के प्रकार जैसे number, string, boolean, null, undefined, और symbol जिनके पास प्रत्यक्ष विधियाँ नहीं होती हैं।
  • रैपर ऑब्जेक्ट्स: Number, String, और Boolean जैसे ऑब्जेक्ट्स जो अस्थायी रूप से प्रिमिटिव प्रकारों से परिवर्तित किए जाते हैं।

आप हमारे YouTube चैनल पर Visual Studio Code का उपयोग करके ऊपर दिए गए लेख के साथ आगे बढ़ सकते हैं। कृपया YouTube चैनल को भी देखें।

YouTube Video