ดังที่เราทราบในการประกาศตัวแปรในจาวาสคริปต์ เรามีสองตัวเลือกประกาศด้วย var หรือประกาศด้วยให้ ตอนนี้คำถามคือเมื่อใดควรใช้ var และเมื่อใดควรใช้ ให้ i.e อะไรคือข้อแตกต่างที่สำคัญระหว่างทั้งสองอย่าง
ในข้อความต่อไปนี้ เรามาทำความรู้จักกับความแตกต่างที่สำคัญระหว่าง var และ let in javascript
ความแตกต่างหลัก ระหว่าง let และ var คือขอบเขตของตัวแปรที่กำหนดด้วย let นั้นจำกัดอยู่ที่บล็อกที่มีการประกาศในขณะที่ตัวแปรที่ประกาศด้วย var มีขอบเขตทั่วโลก ดังนั้นเราสามารถพูดได้ว่า var ค่อนข้างจะเป็นคีย์เวิร์ดที่กำหนดตัวแปรทั่วโลกโดยไม่คำนึงถึงขอบเขตของบล็อก
ขอบเขตของ let ไม่ได้จำกัดอยู่แค่บล็อกที่กำหนดไว้เท่านั้น แต่ตัวแปรที่มี let ยังไม่ถูกเพิ่มด้วยวัตถุหน้าต่างส่วนกลาง แม้ว่าจะประกาศไว้นอกบล็อกก็ตาม แต่เราสามารถเข้าถึงตัวแปรด้วย var จาก window object ได้หากมีการกำหนดไว้ทั่วโลก
เนื่องจากขอบเขตที่จำกัด ตัวแปรมักจะถูกใช้เมื่อมีการใช้งานอย่างจำกัดของตัวแปรเหล่านั้น เช่น in for loops, while loops หรือภายในขอบเขตของเงื่อนไข if ฯลฯ ในขณะที่ตัวแปร var จะถูกใช้เมื่อค่าของตัวแปรจำเป็นต้องเปลี่ยนแปลงน้อยลงและเคยชินกับ เข้าถึงได้ทั่วโลก
นอกจากนี้ ความแตกต่างอย่างหนึ่งระหว่าง var และ let คือตัวแปรที่มี var สามารถประกาศใหม่เป็นค่าอื่นได้ ในขณะที่ตัวแปรไม่สามารถประกาศซ้ำได้หากมีการกำหนดด้วย let
ตัวอย่างที่แสดงความแตกต่างระหว่าง var และ let
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