พื้นฐาน ES6 จาก var สู่ let และ const

Tuanrit Sahapaet
2 3 Perspective
Published in
2 min readAug 2, 2017

หลายๆคนคงเคยเห็น let และ const กันผ่านๆตากันมาบ้างแล้ว ทราบหรือไม่ว่า let/const มีขอบเขตตัวตน หรือ scope เป็นของตัวเอง เรียกว่า function scoped นั้นคือ มีค่าแค่ในขอบเขตของตนเอง ประกาศตัวแปรอยู่ในบลอคไหน ก็จะอยู่แค่ ในบลอคนั้น ซึ่งแตกต่างจาก var ซึ่งเป็น global scope คือ ประกาศค่าและใช้ค่าร่วมกันได้

การใช้ var

ผลลัพธ์ที่ออกมา :

พิมพ์ 3 ออกมา 3 ครั้ง

เนื่องจาก loop ได้ทำงานจนสิ้นสุดแล้ว ทำให้ในขณะนั้น I มีค่าเป็น 3 และตัวแปร ชนิด var เป็น global scope ทำให้ในบรรทัด 14 สามารถทำงานได้ และผลักตัวเองออกมานอก for หรือ อธิบายง่ายๆคือ โดนแทนค่าไปในแต่ละรอบเข้าตัวแปรเดิม

การใช้ let

ผลลัพธ์ที่ออกมา :

สำหรับค่าใน for จะได้ผลลัพธ์ออกมา คือ 0 1 และ 2

เนื่องจากการใช้ let ประกาศตัวแปร ทำให้เป็น ตัวแปรนั้นๆเป็น block scoped นั้นคือมีค่าแค่อยู่ในขอบเขตของตัวเอง ในบรรทัด 14 ผลที่ออกมาจึงไม่สามารถอ้างอิงตัวแปรได้นั้นเอง

ความต่างระหว่าง let กับ const คือ let เมื่อประกาศตัวแปรแล้ว สามารถเปลี่ยนแปลงค่าได้ เมื่อเรากำหนดค่าให้กับตัวแปรนั้นๆใหม่ แต่ถ้าเป็นตัวแปรชนิด const จะไม่สามารถ ประกาศค่าใหม่ให้กับตัวแปรนั้นได้ จึงเหมาะจะใช้สำหรับประกาศตัวแปรค่าคงที่เช่น ค่า PI เป็นตัน

ยกตัวอย่างเช่น

ค่า PI เมื่อเป็นค่าคงที่ จะไม่สามารถเปลี่ยนแปลงค่าได้อีก

สำหรับบทความนี้ ฝากไว้ให้นักพัฒนาได้เปลี่ยนมาใช้ ชนิดตัวแปรให้ตรงกับขอบเขตของการใช้งาน เพื่อที่จะสามารถอ่านแล้วเข้าใจง่าย เข้าใจชนิดของตัวแปรมากยิ่งขึ้น

--

--

Tuanrit Sahapaet
2 3 Perspective

Senior Software Engineer ที่ Purple Ventures Co., Ltd. (Robinhood)