ก่อนอื่นเราต้องเข้าใจแนวคิดดั้งเดิมของมูลค่า
ค่าดั้งเดิม
ส่วนข้อมูลอย่างง่ายที่เก็บไว้ในสแต็กนั่นคือค่าของพวกเขาจะถูกเก็บไว้โดยตรงที่ตำแหน่งที่มีการเข้าถึงตัวแปร
ค่าอ้างอิง
วัตถุที่เก็บไว้ในกองนั่นคือค่าที่เก็บไว้ที่ตัวแปรคือตัวชี้ที่ชี้ไปที่หน่วยความจำที่เก็บวัตถุไว้
― - ― แนวคิดใน W3C ถูกอ้างอิง
ค่าดั้งเดิมที่ง่ายคือบูลีนหมายเลขสตริงที่ไม่ได้กำหนดค่า NULL
การแปลงวัตถุเป็นบูลีนนั้นค่อนข้างง่าย
วัตถุทั้งหมด (รวมถึงอาร์เรย์และฟังก์ชั่น) จะถูกแปลงเป็นจริงและวัตถุห่อหุ้มก็เป็นวัตถุและมันก็ถูกแปลงเป็นจริง
หนังสือเล่มนี้บอกว่า: "วัตถุชั่วคราวที่สร้างขึ้นเมื่อเข้าถึงคุณสมบัติของสตริงตัวเลขและบูลีนเรียกว่าวัตถุ wrapper" นี่คือวิธีที่ฉันเข้าใจ สตริงหมายเลขและบูลีนใหม่ทั้งหมดถือเป็นวัตถุห่อหุ้ม พวกมันแตกต่างจากวัตถุ แต่เป็นวัตถุ ความแตกต่างที่สำคัญคือพวกเขาไม่สามารถกำหนดคุณลักษณะใหม่สำหรับวัตถุ wrapper ได้เนื่องจากแอตทริบิวต์ของจำนวนสตริงบูลีนเป็นแบบอ่านอย่างเดียว
แปลงวัตถุเป็นประเภทสตริง
หากวัตถุมีวิธี ToString () ให้เรียกใช้วิธี TOSTRING () หากมีการส่งคืนค่าดั้งเดิมให้แปลงค่าดั้งเดิมเป็นสตริงและวัตถุจะถูกแปลงเป็นสตริงนี้ หากวิธีการ ToString () ไม่พร้อมใช้งานหรือค่าที่ส่งคืนโดยวิธีนี้ไม่ใช่ค่าดั้งเดิมให้เรียกใช้วิธี valueof () ในรูทีนเดียวกันหากผลตอบแทนเป็นค่าดั้งเดิมให้แปลงค่าดั้งเดิมเป็นสตริงและวัตถุจะถูกแปลงเป็นสตริงนี้ หากการส่งคืนไม่ใช่ค่าดั้งเดิมข้อผิดพลาดการแปลงประเภทจะถูกโยนลงไป
เมธอด toString () และวิธีการ () ที่นี่จะไม่ได้รับการอธิบายทีละหนึ่ง
แปลงวัตถุเป็นประเภทหมายเลข
เมื่อเทียบกับกระบวนการแปลงเป็นสตริงและการแปลงตัวเลขมันเป็นสิ่งที่ตรงกันข้าม ก่อนอื่นให้เรียกเมธอด ValueOf () จากนั้นเรียกใช้วิธี TOSTRING () ในที่สุดเมธอด toString () จะไม่ส่งคืนค่าดั้งเดิมและ JS ก็เกิดข้อผิดพลาด
เมื่อใช้ตัวดำเนินการ "==" และ "+" สำหรับการคำนวณเชิงตัวเลขหรือการประกบสตริงถ้าด้านหนึ่งของตัวดำเนินการเป็นวัตถุวัตถุพิเศษจะถูกแปลงเป็นค่าดั้งเดิมจะถูกใช้ สำหรับวัตถุที่ไม่ใช่วันที่การแปลงวัตถุเป็นค่าดั้งเดิมคือ
วัตถุเรียกวิธีการ valueof () ก่อนจากนั้นเมธอด toString () และแปลงค่าดั้งเดิมที่ได้รับโดยตรงโดยเรียกใช้สองวิธีนี้เป็นค่าดั้งเดิมลงในวัตถุ สำหรับวัตถุวันที่ให้โทรไปที่วิธี ToString () ก่อนจากนั้นเรียกใช้วิธีการ Valueof
สำหรับการแปลงวัตถุวันที่เป็นค่าดั้งเดิมให้ตัวอย่าง
var now = new Date (); typeof (ตอนนี้+1); // "สตริง" แปลงวัตถุวันที่เป็นสตริงเนื่องจากวิธีการ toString () typeof (ตอนนี้ 1); // "หมายเลข" สะท้อนถึงความยืดหยุ่นของ JS "-" แปลงสตริงเป็นตัวเลข
วิธีการด้านบนของการแปลงวัตถุเป็นค่าดั้งเดิมคือเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น