JavaScript में 5 प्रिमिटिव प्रकार हैं: undefined, null, boolean, string और number। बाकी सब ऑब्जेक्ट हैं।
प्रिमिटिव प्रकार boolean, string और number को उनके वॉपर ऑब्जेक्ट द्वारा लपेटा जा सकता है, यानी Boolean, String और Number कंस्ट्रक्टर्स के इंस्टेंसेस क्रमशः।
ऑब्जेक्ट वॉपर्स से प्रिमिटिव वैल्यूज़ वापस पाने के लिए, हमें ऑब्जेक्ट्स पर 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"
जैसा कि आप यहां देख सकते हैं प्रिमिटिव्स का प्रकार boolean, string या number है जबकि उनके वॉपर्स का object है। जैसे ही हम valueOf का उपयोग करके मान प्राप्त करते हैं, हमें फिर से प्रिमिटिव्स वापस मिल जाते हैं।
लेकिन, प्रिमिटिव्स के भी JS में गुण होते हैं। ऐसा इसलिए है क्योंकि JavaScript आवश्यकता के आधार पर प्रिमिटिव्स और ऑब्जेक्ट्स के बीच जबरदस्ती करता है। इसलिए यदि हम इस प्रिमिटिव पर length प्रॉपर्टी एक्सेस करते हैं, तो यह एक ऑब्जेक्ट में लपेटा जाता है, यह प्रॉपर्टी एक्सेस की जाती है और प्रिमिटिव को फिर से अनरैप किया जाता है।