false.tostring (); // 'false' [1, 2, 3] .tostring (); // '1,2,3'function foo () {} foo.bar = 1; foo.bar; // 1สิ่งหนึ่งที่มักเข้าใจผิดคือค่าคงที่ตัวเลขไม่สามารถถือได้ว่าเป็นวัตถุ แต่ในความเป็นจริงค่าคงที่ตัวเลขยังคงถือได้ว่าเป็นวัตถุ นี่เป็นเพราะตัวแยกวิเคราะห์ JavaScript ทำผิดพลาดเมื่อแยกวิเคราะห์ผู้ให้บริการและถือว่าเป็นคุณสมบัติจุดลอยตัว
2.tostring (); // เพิ่มไวยากรณ์
ในความเป็นจริงเรามีหลายวิธีในการทำตัวเป็นตัวเลขเป็นวัตถุ
2..Tostring (); // จุดที่สองได้รับการยอมรับอย่างถูกต้อง 2 .tostring (); // หมายเหตุพื้นที่ที่เหลืออยู่ในจุด (2) .tostring (); // 2 ได้รับการประเมินก่อน
วัตถุเป็นประเภทข้อมูล
วัตถุในจาวาสคริปต์สามารถใช้เป็นตารางแฮชและส่วนใหญ่มีความสัมพันธ์ที่สอดคล้องกันระหว่างคีย์และค่า
ใช้สัญลักษณ์ {} เพื่อสร้างวัตถุอย่างง่าย วัตถุที่สร้างขึ้นใหม่นี้จะสืบทอดจาก Object.prototype และไม่มีคุณสมบัติที่กำหนดเอง
var foo = {}; // วัตถุว่างเปล่าใหม่ // วัตถุใหม่ที่มีคุณสมบัติ 'ทดสอบ' ที่มีค่า 12var bar = {test: 12};เข้าถึงคุณสมบัติของวัตถุ
เราสามารถใช้สองวิธีในการเข้าถึงวัตถุ JavaScript คือตัวดำเนินการ DOT และตัวยึดวงเล็บ []
var foo = {ชื่อ: 'ลูกแมว'} foo.name; // kittenfoo ['ชื่อ']; // kittenvar get = 'name'; foo [get]; // kittenfoo.1234; // syntaxerrorfoo ['1234']; // ทำงานผลกระทบของตัวดำเนินการทั้งสองนั้นเกือบจะเหมือนกันความแตกต่างเพียงอย่างเดียวคือผู้ประกอบการวงเล็บอนุญาตให้ตั้งค่าคุณสมบัติแบบไดนามิกและชื่อแอตทริบิวต์อาจมีข้อผิดพลาดทางไวยากรณ์ (กรณีที่สามในตัวอย่างข้างต้นได้รับการอธิบาย)
ลบคุณสมบัติของวัตถุ
วิธีเดียวที่จะลบคุณสมบัติคือการใช้การลบการตั้งค่าคุณสมบัติเป็น undefined หรือ null เพียงลบค่าที่เกี่ยวข้องกับคุณสมบัติและไม่ได้ลบคุณสมบัติของตัวเอง
var obj = {bar: 1, foo: 2, baz: 3}; obj.bar = undefined; obj.foo = null; ลบ obj.baz; สำหรับ (var i ใน obj) {ถ้า (obj.hasownproperty (i)) {console.log (i, ' + obj); -แถบเอาท์พุทข้างต้นไม่ได้กำหนดและ foo null มีเพียง BAZ เท่านั้นที่ถูกลบ
ควรอธิบายที่นี่ว่าการลบสามารถลบแอตทริบิวต์เท่านั้นไม่ใช่ตัวแปร ดังนั้นเมื่อกำหนดตัวแปรเราต้องพัฒนานิสัยที่ดีในการเขียน var เมื่อใดก็ได้ตัวแปรจะต้องประกาศโดยใช้คำหลัก VAR เพราะถ้าคุณไม่ได้เขียน VAR ตัวแปรจะถูกเข้าใจผิดสำหรับวัตถุทั่วโลกและสร้างคุณสมบัติใหม่
ตัวอย่างนี้ให้คำตอบค่อนข้างชัดเจน A เป็นตัวแปรและ B เป็นเพียงคุณสมบัติของวัตถุระดับโลก
คุณสมบัติของวัตถุที่มีชื่อ
var test = {'case': 'ฉันเป็นคำหลักดังนั้นฉันต้องถูกสังเกตว่าเป็นสตริง', ลบ: 'ฉันเป็นคำหลักดังนั้นฉันด้วย' // เพิ่ม syntaxerror};คุณสมบัติของวัตถุสามารถตั้งชื่อด้วยอักขระหรือสตริงปกติ นอกจากนี้เนื่องจากการออกแบบที่ไม่ถูกต้องของตัวแยกวิเคราะห์ JavaScript วิธีการแสดงที่สองในตัวอย่างข้างต้นจะทำให้เกิดข้อผิดพลาดใน ECMAScript 5
เหตุผลสำหรับข้อผิดพลาดคือการลบเป็นคำหลักดังนั้นค่าคงที่สตริงจะต้องตั้งชื่อเพื่อปรับให้เข้ากับตัวแยกวิเคราะห์ JavaScript เวอร์ชันเก่า