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

สามารถใช้ตัวแปร JavaScript ก่อนประกาศได้หรือไม่?

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

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

rank = 5; 
var rank;

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

var rank; 
rank = 5;

รายละเอียดเพิ่มเติม

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

แนวทางปฏิบัติ: ควรประกาศตัวแปรก่อนใช้งานเสมอ เพื่อความอ่านง่ายและหลีกเลี่ยงบั๊ก