জাভাস্ক্রিপ্টে ৫টি প্রাইমিটিভ টাইপ রয়েছে: 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 ব্যবহার করে ভ্যালু পাওয়ার সাথে সাথে আমরা আবার প্রাইমিটিভ পাই।
কিন্তু, প্রাইমিটিভগুলোরও প্রপার্টি থাকে জেএসে। কারণ জাভাস্ক্রিপ্ট প্রয়োজনে প্রাইমিটিভ এবং অবজেক্টের মধ্যে কোয়ার্স করে। তাই যদি আমরা এই প্রাইমিটিভের length প্রপার্টি এক্সেস করি, এটি অবজেক্টে র্যাপ হয়, প্রপার্টি এক্সেস হয় এবং প্রাইমিটিভ আবার আনর্যাপ হয়।