ECMAScript ค่าสายและค่าอ้างอิง
- หน้าก่อนหน้า คำศัพท์ที่ถูกปกป้อง ECMAScript
- หน้าต่อไป ประเภทประเภทต้นฐาน ECMAScript
ใน ECMAScript ตัวแปรสามารถมีค่าทั้งสองประเภท คือ ค่าระบุและอ้างอิงค่า
ค่าระบุและอ้างอิงค่า
ใน ECMAScript ตัวแปรสามารถมีค่าทั้งสองประเภท คือ ค่าระบุและอ้างอิงค่า
- ค่าระบุ
- เก็บในตาราง (stack) ของข้อมูลที่เรียบง่าย หรือที่ว่าค่าของมันจะเก็บในตำแหน่งที่ใช้เข้าถึงตัวแปร
- อ้างอิงค่า
- เป็นอ้างอิงที่เก็บในฝาย หรือที่ว่าค่าที่เก็บในตัวแปรคือที่อยู่หรือที่อยู่หมายของอ้างอิงที่เก็บในฝาย
ในการจัดสรรค่าให้แก่ตัวแปร โปรแกรมเจอร์ของ ECMAScript จะต้องตรวจสอบว่าค่านั้นเป็นปริมาณระบุหรือปริมาณอ้างอิง ในการทำตัวนี้ โปรแกรมเจอร์จะต้องพยายามตรวจสอบค่านี้เป็นปริมาณระบุหนึ่งของ ECMAScript หรือไม่คือ Undefined、Null、Boolean、Number และ String ปริมาณระบุเหล่านี้มีพื้นที่ที่คงที่ ดังนั้นสามารถจัดสรรในพื้นที่เก็บของตาราง (stack) ที่เล็กกว่า การเก็บนี้ทำให้การค้นหาค่าของตัวแปรที่รวดเร็วขึ้น
ในหลายภาษาแปลงไล่ง ตัวอักษรสตริงมักถูกมองเป็นปริมาณอ้างอิง ไม่ใช่ปริมาณระบุ เพราะความยาวของตัวอักษรสตริงนั้นสามารถเปลี่ยนแปลงได้ ECMAScript ทำลายความเชื่อนี้
หากค่าเป็นปริมาณอ้างอิง พื้นที่เก็บของมันจะถูกจัดสรรจากฝาย (heap) ของเครื่อง ตามขนาดของอ้างอิงนั้นจะเปลี่ยนแปลง ดังนั้นไม่สามารถจัดสรรในพื้นที่เก็บของตาราง (stack) ของตัวแปร เพราะจะลดความเร็วของการค้นหาตัวแปร แทนที่นี้ ค่าที่เก็บในพื้นที่เก็บของตารางจะเป็นที่อยู่หรือที่อยู่หมายของอ้างอิงที่เก็บในฝาย ที่อยู่หมายนี้มีขนาดที่คงที่ ดังนั้นการเก็บที่อยู่หมายนี้ในพื้นที่เก็บของตารางจะไม่มีผลกระทบใดๆ ต่อประสิทธิภาพของตัวแปร ตามรูปแบบดังนี้

ปริมาณระบุ
เช่นเดียวกับที่กล่าวข้างต้น อีเชม่าสคริปท์มี 5 ปริมาณระบุ (primitive type) คือ Undefined、Null、Boolean、Number และ String ที่ ECMA-262 ใช้คำว่าประเภท (type)กำหนดว่ามันเป็นชุดของค่า แต่ละปริมาณระบุกำหนดของค่าที่มีอยู่ในมันและรูปแบบแสดงที่ใช้แสดงค่านี้
ECMAScript มีสัญญาณ typeof ที่ใช้ในการตรวจสอบค่าว่าด้วยประเภทของค่านั้นอยู่ในระยะที่ใด สามารถใช้สัญญาณนี้ตรวจสอบว่าค่านั้นเป็นปริมาณระบุหรือไม่ และหากเป็นปริมาณระบุ ยังสามารถตรวจสอบว่าเป็นปริมาณระบุประเภทไหน
ในบทบาทหลังไปอีกของเราจะนำเสนอการอธิบายลึกลงไปในประเภทของปริมาณระบุและปริมาณอ้างอิงของ ECMAScript
- หน้าก่อนหน้า คำศัพท์ที่ถูกปกป้อง ECMAScript
- หน้าต่อไป ประเภทประเภทต้นฐาน ECMAScript