जावास्क्रिप्ट में 5 आदिम प्रकार हैं:अपरिभाषित, अशक्त, बूलियन, स्ट्रिंग और संख्या। बाकी सब कुछ एक वस्तु है।
आदिम प्रकार के बूलियन, स्ट्रिंग और नंबर को उनके रैपर ऑब्जेक्ट द्वारा लपेटा जा सकता है, अर्थात, क्रमशः बूलियन, स्ट्रिंग और नंबर कंस्ट्रक्टर के उदाहरण।
ऑब्जेक्ट रैपर से आदिम मानों को वापस पाने के लिए, हमें ऑब्जेक्ट पर valueOf विधि को कॉल करने की आवश्यकता है।
उदाहरण
console.log(typeof true); console.log(typeof new Boolean(true)); console.log(typeof (new Boolean(true)).valueOf()); console.log(typeof "abc"); console.log(typeof new String("abc")); console.log(typeof (new String("abc")).valueOf()); console.log(typeof 123); console.log(typeof new Number(123)); console.log(typeof (new Number(123)).valueOf());
आउटपुट
"boolean" "object" "boolean" "string" "object" "string" "number" "object" "number"
जैसा कि आप यहां देख सकते हैं कि आदिम के प्रकार बूलियन, स्ट्रिंग या संख्या हैं जबकि उनके रैपर ऑब्जेक्ट हैं। जैसे ही हमें valueOf का उपयोग करके मान मिलते हैं, हम फिर से आदिम वापस प्राप्त कर लेते हैं।
लेकिन, आदिम के पास जेएस में भी गुण होते हैं। ऐसा इसलिए है क्योंकि जावास्क्रिप्ट आवश्यकता के आधार पर आदिम और वस्तुओं के बीच ज़बरदस्ती करता है। इसलिए यदि हम इस आदिम पर लंबाई की संपत्ति तक पहुँचते हैं, तो इसे एक वस्तु में लपेटा जाता है, इस संपत्ति तक पहुँचा जाता है और आदिम को फिर से खोल दिया जाता है।