คำก่อนหน้านี้
เกี่ยวกับการแปลงประเภทสองวิธีทั่วไปสำหรับวัตถุคือ toString () และค่าของ () ในความเป็นจริงสองวิธีนี้สามารถนำไปใช้กับประเภทบรรจุภัณฑ์ วิธีการ TOSTRING () ได้รับการแนะนำมาก่อน บทความนี้จะแนะนำวิธีการ valueof () ซึ่งส่งคืนค่าดั้งเดิม
【 1 】 undefined และ null ไม่มีค่าของ () วิธีการ
undefined.valueof (); // ข้อผิดพลาด null.valueof (); // error
【 2 】ข้อมูลบูลีนจริงและเท็จกลับไปที่ค่าดั้งเดิม
true.valueof (); // truetypeof true.valueof (); // 'boolean'false.valueof (); //' falsetypeof false.valueof (); // 'boolean'boolean.valueof (); // boolean ()
【 3 】ค่าดั้งเดิมของประเภทสตริงจะถูกส่งคืน
'1'.valueof (); //' 1 '' '. valueof (); //' 'abc'.valueof (); //' abc'string.valueof (); // string () {[รหัสดั้งเดิม]} typeof String.valueof (); // 'ฟังก์ชั่น'【 4 】ประเภทตัวเลขแบ่งออกเป็นจำนวนเต็มและหมายเลขจุดลอยตัวสำหรับการประมวลผล
number.valueof (); // number () {[รหัสดั้งเดิม]} typeof number.valueof (); // 'ฟังก์ชั่น'1. จำนวนเต็มติดตามแบบฟอร์ม. valueof () โดยตรงจะมีการรายงานข้อผิดพลาดและมีการแจ้งเตือนที่ไม่ถูกต้องดังนั้นลองเพิ่มวงเล็บ
0.Valueof (); // syntaxerror ที่ไม่ถูกต้อง: โทเค็นไม่ถูกต้องหรือไม่คาดคิด (0) .ValueOf (); // 0+0.ValueOf (); // syntaxerror: uncaught: token ไม่ถูกต้องหรือไม่คาดคิด โทเค็น (-0) .ValueOf (); //-0
[หมายเหตุ] ค่าของ () ค่า -0 คือ -0 และค่าของค่า toString () ของ -0 คือ '0'
2. ส่งคืนค่าดั้งเดิมของหมายเลขจุดลอยตัว
1.23.ValueOf (); // 1.23+1.23.ValueOf (); // 1.23-1.23.ValueOf (); //-1.23nan.valueof (); // naninfinity.valueof (); // infinity-infinity.valueof ();
[หมายเหตุ] ความแตกต่างระหว่าง toString () คือค่าของ () ไม่สามารถรับการแปลง cardinality
【 5 】ประเภทวัตถุและประเภทวัตถุที่กำหนดเองกลับไปที่วัตถุต้นฉบับ
{} .valueof (); // รายงานข้อผิดพลาดโทเค็นที่ไม่คาดคิด ({}). valueof (); // object {} typeof ({}). valueof (); // 'object' ({a: 123}). valueof () Object.valueof (); // 'ฟังก์ชั่น' ฟังก์ชันบุคคล () {this.name = 'test';} var person1 = บุคคลใหม่ (); person1.valueof (); // บุคคล {ชื่อ: "ทดสอบ"}【 6 】ประเภทฟังก์ชันประเภทฟังก์ชันกลับไปยังฟังก์ชันดั้งเดิม
การทดสอบฟังก์ชั่น () {แจ้งเตือน (1); // test} test.valueof ();/*ฟังก์ชันทดสอบ () {การแจ้งเตือน (1); // test}*/function.valueof (); // function () {[รหัสดั้งเดิม]}}【 7 】ประเภทอาร์เรย์กลับไปที่อาร์เรย์ดั้งเดิม
[] .ValueOf (); // [] [1] .ValueOf (); // [1] [1,2,3,4] .ValueOf (); // [1,2,3,4] array.valueof (); // array () {[รหัสดั้งเดิม]}}}}}【 8 】ไม่เหมือนวัตถุอื่นประเภทวันที่เวลาจะส่งคืนค่าตัวเลขซึ่งเป็นค่าเวลานี้
date.now (); // 1465115123742 (วันที่ใหม่ ()). valueof (); // 1465115123742Typeof (วันที่ใหม่ ()). valueof (); // 'number'date.valueof ();
【 9 】ประเภท regexp ส่งคืนวัตถุปกติดั้งเดิม
/ab/i.valueof (); /// ab/i/mom (และพ่อ (และที่รัก)?)?/gi.valueof (); // mom (และพ่อ (และทารก)?)?/giregexp.valueof (); // regexp ()
【 10 】ประเภทข้อผิดพลาดข้อผิดพลาด
ERROR.VALUEOF (); // error () {[รหัสดั้งเดิม]} rangeerror.valueof (); // rangeerror () {[รหัสดั้งเดิม]} referenterror.valueof (); // referienceRror () {[รหัสดั้งเดิม]} syntaxerror.valueof (); // syntax error } typeError.valueof (); // typeError () {[รหัสดั้งเดิม]} urierRor.ValueOf (); // urierRor () {[รหัสดั้งเดิม]}สรุป
1. ความแตกต่างที่สำคัญระหว่าง toString () และ valueof () คือ toString () ส่งคืนสตริงในขณะที่ valueof () ส่งคืนวัตถุต้นฉบับ
2. เนื่องจากไม่ได้กำหนดและ NULL ไม่ใช่วัตถุทั้งสองอย่างนั้นจึงไม่ได้เป็นวิธี toString () และ valueof ()
3. วิธี ToString () ประเภทตัวเลขตัวเลขสามารถรับ cardinality การแปลงและส่งคืนค่าตัวเลขในรูปแบบของสตริงในตัวเลขที่แตกต่างกัน; ในขณะที่วิธีการ valueof () ไม่สามารถยอมรับการแปลง cardinality
4. วิธีการ TOSTRING () ของประเภทเวลาส่งคืนการแสดงสตริงแทนเวลา; และวิธีการที่มีค่า () ส่งคืนจำนวนจำนวนมิลลิวินาทีของประเภทตัวเลขตั้งแต่วันนี้ถึง 1 มกราคม 1970
บทความข้างต้นกล่าวถึงการใช้วิธี String.valueof () สั้น ๆ เป็นเนื้อหาทั้งหมดที่ฉันได้แบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น