ดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

   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

 

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
อยากทราบว่า แคปหน้าจอในโปรแกรม netbean ตอนที่กำลังนำเมาส์ไปชี้ตัวเลือกใน list ได้ยังไงครับ
โดย bankjittapol อ 22 ต.ค. 2019 6:31 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
1
15
อ 22 ต.ค. 2019 6:43 pm โดย mindphp
ความรู้เกี่ยวกับการบัญชีโรงแรม
โดย nnamfon.26 อ 22 ต.ค. 2019 6:21 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
0
9
อ 22 ต.ค. 2019 6:21 pm โดย nnamfon.26
จำทำอย่างไรให้ค่า input เดียวเก็บได้หลายตัวแปลครับ
โดย jamepiyawat อ 22 ต.ค. 2019 5:39 pm บอร์ด Programming - PHP
3
24
อ 22 ต.ค. 2019 6:30 pm โดย jamepiyawat
Tips : เปิดไฟล์ .CSV ด้วย excel (ข้อมูลในไฟล์มีมากกว่า 1 ล้านแถว)
โดย jataz2 อ 22 ต.ค. 2019 5:19 pm บอร์ด Programming - C/C++ & java & Python
0
6
อ 22 ต.ค. 2019 5:19 pm โดย jataz2
วิธีทำให้ text box มีภาพพื้นหลัง ต้องทำอย่างไร ครับ
โดย jamepiyawat อ 22 ต.ค. 2019 5:19 pm บอร์ด HTML CSS
4
25
อ 22 ต.ค. 2019 6:03 pm โดย jamepiyawat
บัญชีบริหาร คืออะไร
โดย nnamfon.26 อ 22 ต.ค. 2019 5:17 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
0
10
อ 22 ต.ค. 2019 5:17 pm โดย nnamfon.26
จะทำอย่างไรให้ข้อความของ placeholder แสดงข้อความได้หลายบรรทัดครับ
โดย jamepiyawat อ 22 ต.ค. 2019 4:41 pm บอร์ด HTML CSS
3
22
อ 22 ต.ค. 2019 6:04 pm โดย jamepiyawat
สร้าง selectซ้อน2ชั้น โดยดึงค่าจาก database ใช้แค่ python
โดย mstsksmstsks อ 22 ต.ค. 2019 4:13 pm บอร์ด HTML CSS
3
16
อ 22 ต.ค. 2019 4:49 pm โดย mindphp
สร้าง selectซ้อน2ชั้น โดยดึงค่าจาก database ใช้แค่ python
โดย May Saithan อ 22 ต.ค. 2019 4:07 pm บอร์ด Programming - C/C++ & java & Python
0
8
อ 22 ต.ค. 2019 4:07 pm โดย May Saithan
judspec.com ที่นี่ มีแบตเตอรี่โน๊ตบุ๊คดีๆ และราคาถูกมากมาย พร้อมจำหน่ายให้คุณแล้ว ทุกรุ่นทุกยี่ห้อ
โดย popeyebkk อ 22 ต.ค. 2019 4:00 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
5
อ 22 ต.ค. 2019 4:00 pm โดย popeyebkk
อยากทราบโปรแกรมสำหรับแคปภาพหน้าจอและปรับแต่งภาพหลังการแคป ใน windows นอกจากSnipping Toolหน่อยค่ะ
โดย nnamfon.26 อ 22 ต.ค. 2019 3:55 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
2
25
อ 22 ต.ค. 2019 4:18 pm โดย nnamfon.26
ต้องการที่จะเก็บข้อมูลลงฐานข้อมูลเป็นตัวเลขและ comme ต้องใช้ type อะไรดีครับ
โดย jamepiyawat อ 22 ต.ค. 2019 3:33 pm บอร์ด SQL - Database
3
20
อ 22 ต.ค. 2019 4:35 pm โดย thatsawan
อยากทราบวิธีการดึงปีปัจจุบันมาแสดง พร้อมกับดึงปีในอนาคตมารให้เลือก ล่วงหน้า อย่างน้อย 10 ใน php
โดย Ittichai_chupol อ 22 ต.ค. 2019 10:52 am บอร์ด Programming - PHP
1
30
อ 22 ต.ค. 2019 11:46 am โดย mindphp
อัพเดทความคืบหน้า / Progress - ThaiVI
โดย mindphp พ 10 ต.ค. 2018 3:49 am บอร์ด ThaiVI (Main)
391
2678
อ 22 ต.ค. 2019 8:13 pm โดย aninthana
จัดพื้นที่กลางห้อง ให้ตอบโจทย์ทุกการใช้งาน
โดย Pattita Dumrongsappakit จ 21 ต.ค. 2019 5:51 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
29
จ 21 ต.ค. 2019 5:51 pm โดย Pattita Dumrongsappakit
การเดินทางจากนครศรีธรรมราชมากรุงเทพฯ
โดย nnamfon.26 จ 21 ต.ค. 2019 5:09 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
22
จ 21 ต.ค. 2019 5:09 pm โดย nnamfon.26
การเดินทางจาก พะเยา มา กรุงเทพฯ
โดย bankjittapol จ 21 ต.ค. 2019 4:58 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
22
จ 21 ต.ค. 2019 4:59 pm โดย thatsawan
รวมสถานที่ท่องเที่ยวภาคเหนือ เที่ยวได้ไม่เบื่อ
โดย Decha Thaweeumanjvaroj จ 21 ต.ค. 2019 1:12 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
14
จ 21 ต.ค. 2019 1:12 pm โดย Decha Thaweeumanjvaroj
Let's me learn how to landing on the moon.
โดย Ellie Freedom อ 20 ต.ค. 2019 6:43 pm บอร์ด Programming - PHP
0
27
อ 20 ต.ค. 2019 6:43 pm โดย Ellie Freedom
สอบถามครับ เชื่อมฐานข้อมูล Wordpress ไม่ได้ครับ
โดย chatee supasand ส 19 ต.ค. 2019 4:07 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
4
112
อ 20 ต.ค. 2019 1:38 pm โดย vmuser