JavaScript Hoisting
การยกขึ้น (Hoisting) คือการทำตามโดยเริ่มต้นของ JavaScript ที่จะยกขึ้นประกาศทุกตัว
ประกาศใน JavaScript จะถูกยกขึ้น
ใน JavaScript คุณสามารถประกาศตัวแปรหลังจากการใช้มัน
ความหมายคือ คุณสามารถใช้ตัวแปรก่อนที่จะประกาศมัน
ตัวอย่าง 1 และตัวอย่าง 2 ผลลัพธ์ที่เหมือนกัน:
ตัวอย่าง 1
x = 5; // จัดให้ x = 5 elem = document.getElementById("demo"); // ҵ elem.innerHTML = x; // แสดง x ในองค์ประกอบ var x; // ประกาศ x
ตัวอย่าง 2
var x; // ประกาศ x x = 5; // จัดให้ x = 5 elem = document.getElementById("demo"); // ҵ elem.innerHTML = x; // แสดง x ในองค์ประกอบ
เพื่อเข้าใจจุดนี้ คุณจะต้องเข้าใจวลี "hoisting"
Hoisting คือการทำตามโดยเริ่มต้นของ JavaScript ที่จะยกขึ้นทุกประกาศไปยังด้านบนสุดของสายงานปฏิบัติการปัจจุบัน (ยกขึ้นยังด้านบนสุดของสคริปต์หรือฟังก์ชันปัจจุบัน)
ใช้คำสั่งตัวแปร let และ const
ด้วย let
หรือ const
ตัวแปรที่ประกาศและค่าคงที่จะไม่ถูกยกขึ้น!
กรุณา JS Let / Const อ่านเพิ่มเติมเกี่ยวกับ let และ const ใน
การตั้งค่าใน JavaScript จะไม่ถูกยกขึ้น
JavaScript ยกขึ้นสำหรับประกาศเท่านั้น ไม่ใช่การตั้งค่า
ตัวอย่าง 1 และตัวอย่าง 2 ผลลัพธ์ไม่เหมือนกัน:
ตัวอย่าง 1
var x = 5; // x var y = 7; // ตั้งค่า y elem = document.getElementById("demo"); // ҵ elem.innerHTML = x + " " + y; // ʾ x y
ตัวอย่าง 2
var x = 5; // x elem = document.getElementById("demo"); // ҵ elem.innerHTML = x + " " + y; // ʾ x y var y = 7; // ตั้งค่า y
ในตัวอย่างหลังสุด y ยังคงไม่ได้ถูกกำหนด นั่นสามารถบอกได้ไหม?
เพราะเป็นเพียงการประกาศ (var y) ไม่ใช่การตั้งค่า (=7) ที่ถูกนำขึ้นบนสุด
hoisting y ʹǰѾıʣΪδбʼ
ʾ 2 Ҳһ
ʵ
var x = 5; // x var y; // y elem = document.getElementById("demo"); // ҵ elem.innerHTML = x + " " + y; // ʾ x y y = 7; // 7 y
ıȫ
Hoisting() Dzǿеʹ÷Dzע JavaScript һ
Dzи hoisting ʱbug
Ϊиbug,һŷŴıÿһıʣ
ΪǼ JavaScript ʽıʽ룬維护ʵ
ʽе JavaScript Dzδıʹö
лʱµһuse strict。