การประกาศตัวแปร let กับ const ของ javascript


เดิมทีการประกาศตัวแปรของ javascript จะใช้ var ต่อมาใน ES6 ได้มี let กับ const เพิ่มเข้ามาเพื่อช่วย
ทลายข้อจำกัดของ var และช่วยให้เราเขียนโค้ด javascript ได้ดียิ่งขึ้น    การประกาศตัวแปรด้วย var นั้นหลาย
ครั้งการทำงานจะไม่ค่อยปกติเหมือนภาษาอื่นๆในการเขียนโปรแกรม   เช่นตัวแปรที่อยู่ในฟังก์ชันตามตัวอย่าง
ด้านล่าง


function a(){
    var n = 1;
}

console.log(n)



// output
1



จากตัวอย่างด้านบนตัวแปรที่ประกาศโดย var ทำตัวเหมือนเป็นตัวแปรแบบ global เลยซึ่งเป็นตัวแปรที่เข้า
ถึงจะที่ไหนก็ได้   แต่เราประกาศตัวแปรในฟังก์ชันซึ่ง scope การใช้งานควรอยู่แค่ในฟังก์ชันเท่านั้น   อีกทั้งกรณี
จะประกาศตัวแปรที่เป็นค่าคงที่ล่ะ  จะทำยังไง?  ด้วย var เฉยๆคงไม่ตอบโจทย์    จึงได้มี let กับ const ขึ้นมา
เพื่อให้การประกาศตัวแปรมีประสิทธิภาพมากขึ้น   let ใช้สำหรับประกาศตัวแปรทั่วไปเป็นตัวเลขหรือตัวอักษรหรือ
เป็น object ก็ได้  สามารถแก้ไขได้   ส่วน const ก็เหมือนกันแต่ไม่สามารถแก้ไขได้เพราะเป็นค่าคงที่   ตาม
ตัวอย่างด้านล่าง



let text = "hello"
let num = 20

const gender = "Female"

num = 30 // แก้ไขได้เพราะประกาศด้วย let เป็นตัวแปรทั่วไป
gender = "Male" // error เพราะ gender ประกาศเป็นค่าคงที่ แก้ไขไม่ได้

function test(){
      let weight = 62.5
      const size = 50

    console.log(num)  // เข้าถึง num และ text ได้เพราะอยู่ใน scope global
}

console.log(size) // error ทันทีเพราะ size กับ weight อยู่ใน scope function


จริงๆมีอีกหลายกรณีที่ var ทำงานไม่ปกติเหมือนภาษาเขียนโปรแกรมอื่นๆ  แต่บทความนี้ตั้งใจจะให้เข้าใจ
การใช้ let กับ const แบบสรุปสั้นๆก็เพียงพอแล้วครับ

ความคิดเห็น