Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

จะรับค่าดั้งเดิมของสตริงใน Javascript ได้อย่างไร


ใน JavaScript มี 5 ประเภทพื้นฐาน:undefined, null, boolean, string และ number ทุกสิ่งทุกอย่างเป็นวัตถุ

บูลีนชนิดดั้งเดิม สตริง และตัวเลขสามารถห่อได้ด้วยออบเจ็กต์ wrapper เช่น อินสแตนซ์ของตัวสร้างบูลีน สตริง และตัวเลข ตามลำดับ

ในการดึงค่าดั้งเดิมกลับมาจากตัวตัดออบเจ็กต์ เราต้องเรียกใช้เมธอด 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"

อย่างที่คุณสามารถดูได้ที่นี่ ประเภทของ primitives คือบูลีน สตริง หรือตัวเลขในขณะที่ wrappers เป็นวัตถุ ทันทีที่เราได้รับค่าโดยใช้ valueOf เราก็จะได้ค่า primitive กลับมาอีกครั้ง

แต่ primitives ก็มีคุณสมบัติใน JS ด้วย เนื่องจาก JavaScript บังคับระหว่าง primitives และ object ตามความต้องการ ดังนั้นหากเราเข้าถึงคุณสมบัติ length บน primitive นี้ มันจะถูกห่อในอ็อบเจ็กต์ คุณสมบัตินี้มีการเข้าถึง และ primitive จะถูกเปิดอีกครั้ง