Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

วิธีดึงค่า primitive ของ String ใน JavaScript

ใน JavaScript มี 5 primitive types: undefined, null, boolean, string, number สิ่งอื่นๆ ล้วนเป็น objects

Primitive types boolean, string, number สามารถ wrap ด้วย wrapper objects ได้ คือ instances ของ Boolean, String, Number constructors

เพื่อดึงค่า primitive กลับมาจาก object wrappers ให้เรียกเมธอด valueOf บน objects

ตัวอย่าง

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"

เห็นได้ว่า types ของ primitives คือ boolean, string, number ส่วน wrappers คือ object ตอนเรียก valueOf ก็ได้ primitives กลับมา

แต่ primitives ก็มี properties ใน JS เพราะ JavaScript coerce ระหว่าง primitives และ objects ตามความต้องการ ถ้าเข้าถึง length property บน primitive จะถูก wrap ใน object เข้าถึง property แล้ว unwrap กลับมาเป็น primitive อีกครั้ง