ES ย่อมาจากคำว่า ECMAScript คือมาตรฐานของภาษา JavaScript ที่กำหนดโดยองค์กร European Association for Standardizing Information and Communication Systems หรือ Ecma International เพื่อให้ภาษา Script นั้นมีความเป็น Standard และพัฒนาเรื่อยมาจนถึงปัจจุบัน ส่วน ES6 นั้นก็เป็น ES2015 ครับ เรามาดูกันมีการเปลี่ยนอะไรเกิดขึ้นบ้าง ใน javascript ES6
การประกาศตัวแปรเปลี่ยนไปจาก var สู่ let และ const
ซึ่งปกติแล้วเรามักจะประกาศตัวแปรของ javaScript ด้วย var
แต่ปัญหาที่เรามักจะพบบ่อยในการเขียน javaScript คือตัวแปรที่เราประกาศมักจะทะลุ Block หรือ ส่วนที่อยู่ใน ครื่องหมาย {}
เนื่องจาก var
จะมี Scope อยู่ระดับ Function ดังนั้น ES6 จึงเพิ่มการประกาศตัวแปรในระดับ Block Scope ด้วย let
เพื่อแก้ปัญหาดังกล่าว และ Const
เพื่อประกาศตัวแปรที่เป็นค่าคงที่ ซึ่งจะคล้าย ๆ กับภาษา Java สามารถอ่านเนื้อหาเพิ่มเติมเรื่อง var กับ let ที่นี่
ตัวอย่างโค้ด การใช้ var,let และ const
var array = []
for (var i = 0; i < 3; i++) {
array.push(i)
}
console.log(array) // returns [0, 1, 2]
console.log(i) // returns 3
// let array = [] --> duplicate declaration of 'array'
let newarr = []
for (let j = 0; j < 3; j++) {
newarr.push(j)
}
console.log(newarr) // returns [0, 1, 2]
console.log("value of j"+ j) // returns undefined
const PI = 3.14
console.log(PI)
PI=2.11 // returns an error " PI is readOnly "
semicolon ไม่จำเป็นอีกต่อไป
ในที่นี้ไม่ใช้ว่า JavaScript ES6 ไม่ต้องใส่ semicolon เพียงแต่ เวอร์ชันนี้ JavaScript ฉลาดพอที่จะเติมให้เราโดยอัตโนมัต หรือเรียกว่า Automatic Semicolon แต่หากจะใส่เองก็สามารถทำได้
// โค๊ดที่เปลือยเปล่าไร้ semicolon
function bar(){
var id='bar'
return id
}
console.log(bar()) // bar
เขียน Code สั้นลง เพียงแค่ใช้ => หรือ Arrow Function
การเขียน JavaScript Functions ใน ES6 นั้นสามารถทำได้ง่ายขึ้นและทำให้ Code สั้นลง เพียงแค่ใช้ => หรือ Arrow Function ซึ่งต่างแบบปกติที่เราจะประกาศฟังก์ชันด้วยการใช้คีย์เวิร์ด function
. ส่วน Arrow function ไม่ได้เปลี่ยนไปแค่ไวยากรณ์ แต่ยังเข้าถึง this จาก Scope ที่ครอบมันอยู่ (Lexical binding) ดังนี้
// ES5
function(arguments) {
}
// ES2015
(arguments) => {
}
ทั้งหมดนี้ก็เป็นเพียงส่วนหนึ่งของการเปลี่ยนแปลงใน JavaScript ซึ่งไม่รวมถึง เวอร์ชัน ES7 ES8 ES9 ที่มี Feature ใหม่ๆมากมาย ที่สามารถเพิ่มประสิทธิภาพในการเขียน JavaScript มากขึ้นรวมทั้ง สามารถลดการโด้ดได้มาก ซึ่งจะต้องศึกษากันต่อไปครับ
ช่องทางการศึกษาเพิ่มเติมข่าวที่น่าสนใจเกี่ยวกับ : JavaScript
- ถาม-ตอบ Jquery/Javascript(205)
- ศึกษาความรู้เกี่ยวกับ Jquery(126)
- บทเรียน Jquery(152)
- บทเรียน HTML(256)
- ศึกษาความรู้เกี่ยวกับ PHP(456)