Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

Variable Hoisting ใน JavaScript

เมื่อคุณสามารถใช้ตัวแปร JavaScript ก่อนที่จะประกาศได้ เรียกว่าทำด้วยเทคนิค Hoisting (การยกขึ้น) พาร์เซอร์อ่านฟังก์ชันทั้งหมดก่อนรันจริง

พฤติกรรมที่ตัวแปรปรากฏว่าถูกใช้ก่อนการประกาศ เรียกว่า Hoisting:

points = 200; 
var points;

โค้ดข้างต้นทำงานเหมือนกับ:

var points; 
points = 200;

รายละเอียด Hoisting

  • มีเพียง การประกาศ (declaration) ที่ถูกยกขึ้น — การกำหนดค่า (initialization) ไม่ถูกยกขึ้น
  • var ถูก hoisted และ initialize ด้วย undefined อัตโนมัติ
  • let/const ถูก hoisted แต่อยู่ใน Temporal Dead Zone (TDZ) — เข้าถึงก่อนประกาศได้ ReferenceError
  • Function Declaration ถูก hoisting ทั้งฟังก์ชัน (รวม body)
  • Function Expression / Arrow Function ไม่ถูก hoisting (เพียงตัวแปรที่ hoisted)

แนวทางปฏิบัติ: ประกาศตัวแปรด้านบนสุดของ scope เสมอ ใช้ let/const แทน var