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

ความแตกต่างระหว่าง var และ let ใน JavaScript

ในการประกาศตัวแปรใน JavaScript มี 2 ตัวเลือก: var หรือ let ความแตกต่างหลักคือ

Scope ของตัวแปรที่ประกาศด้วย let จำกัดอยู่ใน block ที่ประกาศ ในขณะที่ var มี global scope var เป็น keyword ที่กำหนดตัวแปรแบบ global ไม่สน block scope

Scope ของ let ไม่แค่จำกัดใน block ที่กำหนด แต่ตัวแปร let ยังไม่ถูกเพิ่มเข้า global window object แม้ประกาศนอก block ก็ตาม แต่เข้าถึง var จาก window object ได้ถ้าประกาศ global

เพราะ scope จำกัด let มักใช้เมื่อตัวแปรใช้จำกัด เช่นใน for loops, while loops, if conditions ส่วน var ใช้เมื่อค่าต้องการเข้าถึง global

อีกความแตกต่าง: var สามารถ redeclare ได้ แต let ไม่สามารถ redeclare ได้หากประกาศแล้ว

ตัวอย่างแสดงความแตกต่าง

let a = 'hello'; // globally scoped var b = 'world'; // globally scoped console.log(window.a); // undefined console.log(window.b); // 'world' var a = 'hello'; var a = 'world'; // No problem, 'hello' is replaced. let b = 'hello'; let b = 'world'; // SyntaxError: Identifier 'b' has already been declared