let, const และการหลีกเลี่ยง var
พื้นฐาน let และ const เหตุผลที่ควรหลีกเลี่ยง var ขอบเขตบล็อก และแนะนำเขตตายชั่วคราว (TDZ) อย่างค่อยเป็นค่อยไป
let, const และการหลีกเลี่ยง var เป็นบทเรียน JavaScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน JavaScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส JavaScript Academy มีบทเรียนทั้งหมด 3 บทเรียน
บทนำ
เป้าหมาย: ใช้การประกาศตัวแปรแบบเปลี่ยนค่าได้และแบบค่าคงที่อย่างมั่นใจ หลีกเลี่ยงการประกาศแบบเก่า และเข้าใจขอบเขตบล็อกกับ TDZ
- แบบเปลี่ยนค่าได้เทียบกับแบบค่าคงที่
- ขอบเขตบล็อก
- ความปลอดภัยของ TDZ

พื้นฐานการประกาศแบบเปลี่ยนค่าได้เทียบกับแบบค่าคงที่
กฎ: ใช้การประกาศแบบค่าคงที่ เว้นแต่คุณวางแผนจะกำหนดค่าใหม่ มิฉะนั้นให้เลือกการประกาศแบบเปลี่ยนค่าได้
// Prefer const by default; use let when you need to reassign
const appName = "CoddyKit";
// cannot reassign
let score = 0;
// can reassign
score = score + 1;
console.log("App:", appName);
console.log("Score:", score);

เหตุผลที่ควรหลีกเลี่ยงการประกาศแบบเก่า
ควรหลีกเลี่ยงการประกาศแบบเก่าเนื่องจาก:
- มีขอบเขตระดับฟังก์ชัน ไม่ใช่ระดับบล็อก
- ถูกยกขึ้นก่อนการทำงาน และอาจอ่านได้เป็นค่าไม่ได้กำหนดก่อนการประกาศ
- ทำให้การปรับโครงสร้างโค้ดยากขึ้นและคาดเดาได้น้อยลง

ตัวอย่างขอบเขตบล็อก
ขอบเขตบล็อกช่วยจำกัดตัวแปรให้อยู่ในบริเวณที่กำหนดและทำให้โค้ดเป็นระเบียบ
// Block scope: variables exist only inside the braces
let lives = 3;
if (true) {
const bonus = 10;
// only inside this block
let level = 2;
// only inside this block
console.log("Inside:", bonus, level);
}
console.log("Lives:", lives);
// The following would be ReferenceError if uncommented:
// console.log(bonus, level);

TDZ (ตัวอย่างที่ปลอดภัย)
TDZ: ตัวแปรที่ประกาศแบบเปลี่ยนค่าได้หรือแบบค่าคงที่ไม่สามารถอ่านได้ before บรรทัดที่ประกาศ การทำเช่นนี้ช่วยป้องกันข้อผิดพลาดจำนวนมาก
// TDZ: accessing let/const before declaration throws ReferenceError
try {
// Uncommenting next line would throw:
// console.log(theme);
// ReferenceError (TDZ)
let theme = "dark";
console.log("Theme after declare:", theme);
} catch (e) {
console.log("Caught:", e.message);
}

การตั้งชื่อและคำแนะนำ
การตั้งชื่อ:
- ใช้คำนามที่ชัดเจนสำหรับข้อมูล (userName, score)
- ใช้คำกริยาสำหรับฟังก์ชัน (computeTotal)
- จำกัดขอบเขตให้แคบ และประกาศใกล้จุดใช้งาน

แบบทดสอบการประกาศแบบเปลี่ยนค่าได้เทียบกับแบบค่าคงที่
ตรวจสอบอย่างรวดเร็ว: ขอบเขตบล็อกและการกำหนดค่าใหม่

สรุปทบทวน
สรุปทบทวน: ควรใช้การประกาศแบบค่าคงที่ ใช้การประกาศแบบเปลี่ยนค่าได้เมื่อต้องกำหนดค่าใหม่ และหลีกเลี่ยงการประกาศแบบเก่า ขอบเขตบล็อกช่วยจำกัดตัวแปรให้อยู่ในบริเวณที่กำหนด ส่วน TDZ ช่วยป้องกันข้อผิดพลาดจากการเข้าถึงก่อนเวลา

คำถามที่พบบ่อย
บทเรียน “let, const และการหลีกเลี่ยง var” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “let, const และการหลีกเลี่ยง var” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส JavaScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส JavaScript Academy มีบทเรียนทั้งหมด 3 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “let, const และการหลีกเลี่ยง var”
พื้นฐาน let และ const เหตุผลที่ควรหลีกเลี่ยง var ขอบเขตบล็อก และแนะนำเขตตายชั่วคราว (TDZ) อย่างค่อยเป็นค่อยไป คุณปฏิบัติ JavaScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน JavaScript Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน JavaScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 3 บทเรียน
บทเรียน “let, const และการหลีกเลี่ยง var” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน JavaScript Academy นี้ได้ไหม
ได้ บทเรียน JavaScript Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- let, const และการหลีกเลี่ยง var
- ขอบเขตบล็อก ฟังก์ชัน โมดูล และ TDZ
- การตั้งชื่อ ความอ่านง่าย และข้อผิดพลาดที่พบบ่อย