Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 19 additions & 25 deletions 1-js/01-getting-started/2-manuals-specifications/article.md
Original file line number Diff line number Diff line change
@@ -1,43 +1,37 @@

# คู่มือและข้อมูลเชิงลึก
# คู่มือการใช้งานและข้อมูลสเปคทางเทคนิค

คู่มือเล่มนี้เป็น *คู่มือการสอน* โดยมีจุดมุ่งหมายเพื่อให้ผู้เรียนค่อยๆคุ้นเคยกับภาษาก่อน
หนังสือเล่มนี้เป็น บทแนะนำการใช้งาน ที่มีเป้าหมายเพื่อช่วยให้คุณเรียนรู้ภาษานี้อย่างช้าๆ แต่เมื่อคุณเข้าใจพื้นฐานแล้ว คุณจะต้องใช้แหล่งข้อมูลอื่นๆ เพื่อเสริมสร้างความรู้และทักษะของคุณให้เติบโตยิ่งขึ้น และเพื่อให้คุณสามารถเขียนโค้ดที่มีประสิทธิภาพและมีประสิทธิผลได้

## ข้อกำหนด
## ข้อมูลสเปคทางเทคนิค

ข้อกำหนด ECMA-262 (The ECMA-262 specification)** ประกอบด้วยข้อมูลเชิงลึก มีรายละเอียด และมีความเป็นทางการสูง ทั้งยังเป็นมาตรฐานของจาวาสคริปต์
[เอกสารข้อกำหนด ECMA-262](https://www.ecma-international.org/publications/standards/Ecma-262.htm) เป็นแหล่งข้อมูลที่สำคัญและละเอียดถี่ถ้วนที่สุดเกี่ยวกับภาษา JavaScript โดยที่กำหนดลักษณะการใช้งานของภาษานี้ไว้แบบละเอียดสมบูรณ์ และเป็นแหล่งข้อมูลที่เป็นทางการที่สุดเกี่ยวกับภาษานี้

แต่ด้วยทั้งข้อมูลและรายละเอียดในเชิงลึก ข้อกำหนดนี้เลยทำความเข้าใจยากมาก ดังนั้นหากต้องการข้อมูลที่น่าเชื่อถือ และอัดแน่นไปด้วยข้อมูลของภาษา ก็อยากดังกล่าวให้อ่านกำหนดนี้
แต่เนื่องจากเอกสารข้อกำหนดถูกเขียนเป็นทางการมากๆ ทำให้มันยากต่อการเข้าใจในระยะแรก ดังนั้นหากคุณต้องการแหล่งข้อมูลที่เชื่อถือได้เกี่ยวกับรายละเอียดของภาษา การอ่านข้อกำหนดทางการจะเป็นทางเลือกที่เหมาะสมที่สุด แต่มันไม่เหมาะสมสำหรับการใช้งานในทุกวัน และมันยังไม่ได้รวมถึงข้อมูลที่เกี่ยวข้องกับเบราว์เซอร์ และเครื่องมืออื่นๆที่เกี่ยวข้อง

รายการสเปคของเวอร์ชั่นในจาวาสคริปต์จะออกใหม่ทุกๆปี ในระหว่างจะทำการออกเวอร์ชั่นใหม่ ผู้ออกจะออกหนังสือร่างรายการสเปคเอาไว้ สามาถอ่านได้ที่ลิงค์นี้ <https://tc39.es/ecma262/>
มีการเผยแพร่เวอร์ชันใหม่ๆของข้อกำหนดใหม่ๆทุกๆปี ในช่วงระหว่างการเผยแพร่เวอร์ชันนั้น เราสามารถอ่านร่างล่าสุดของข้อกำหนดใหม่ๆได้ เพียงเข้าไปที่ <https://tc39.es/ecma262/>

หากต้องการอ่านข้อมูลฟีเจอร์ที่กำลังพัฒนา และฟีเจอร์ที่กำลังจะออกมาเป็นมาตรฐาน โปรดเข้าไปที่ลิงค์นี้ <https://github.com/tc39/proposals>.
หากต้องการอ่านเกี่ยวกับฟีเจอร์ใหม่ๆ ที่อยู่ในขั้นตอนการพัฒนา (Bleeding-edge features) รวมถึงฟีเจอร์ที่อยู่ในระดับ "เกือบเป็นมาตรฐาน" (เรียกว่า "stage 3") สามารถดูข้อเสนอที่ <https://github.com/tc39/proposals> ได้เลย

ส่วนข้อกำหนดอื่นๆเราจะกล่าวถึงใน [ส่วนที่สอง](info:browser-environment) ของบท
นอกเหนือจากนี้หากคุณกำลังพัฒนาแอพสำหรับเบราว์เซอร์ จะมีข้อกำหนดอื่นๆที่เกี่ยวข้องใน[ส่วนที่สอง](info:browser-environment)ของบทแนะนำการใช้งานนี้เพิ่มเติม

## คู่มือ
## คู่มือการใช้งาน (Manuals)

- **การอ้างอิง JavaScript MDN (Mozilla)** เป็นคู่มือหลักพร้อมตัวอย่างและข้อมูลอื่นๆ ยังรวมไปถึงข้อมูลเชิงลึกเกี่ยวกับ ฟังก์ชัน ภาษา เมธอด และอื่นๆ
- **MDN (Mozilla) JavaScript Reference** เป็นแหล่งข้อมูลที่สำคัญมีตัวอย่างและข้อมูลอื่นๆให้ นี่เป็นแหล่งข้อมูลที่ยอดเยี่ยมสำหรับเรียนรู้ข้อมูลละเอียดเกี่ยวกับฟังก์ชันและเมธอดต่างๆของภาษา JavaScript

เข้าชมที่ลิงต์นี้ <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference>.
คุณสามารถค้นหาคู่มือนี้ได้ที่<https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference>.

ค้นหาจากอินเตอร์เน็ตโดยพิมพ์ "MDN [ตามด้วยฟังก์ชั่นหรือเมธอดที่อยากรู้]" เช่น อยากรู้จักฟังก์ชัน parseInt <https://google.com/search?q=MDN+parseInt>
แต่ในบางครั้ง การค้นหาข้อมูลบนอินเทอร์เน็ตอาจจะง่ายกว่า ให้ใช้คำสำคัญ "MDN [คำที่ต้องการหา]" เช่น <https://google.com/search?q=MDN+parseInt> เพื่อค้นหาข้อมูลเกี่ยวกับฟังก์ชัน `parseInt` ที่ MDN ได้อย่างรวดเร็ว

- **MSDN** -คู่มือของไมโครซอฟท์ก็เป็นอีกทางเลือกหนึ่งที่ดี รวมไปถึงจาวาสคริปต์ (พูดถึงในชื่อ JScript) แต่หากต้องทำงานหรืออยากรู้อะไรบางอย่างเกี่ยวกับ IE มาที่ลิงค์นี้จะดีกว่า <http://msdn.microsoft.com/>
## ตารางความเข้ากันได้ของเวอร์ชัน (Compatibility tables)

ค้นหาจากอินเตอร์เน็ตโดยพิมพ์ "[ตามด้วยฟังก์ชั่นหรือเมธอดที่อยากรู้] MSDN" หรือ "[ตามด้วยฟังก์ชั่นหรือเมธอดที่อยากรู้] MSDN jscript" ก็ได้
ภาษา JavaScript เป็นภาษาที่กำลังพัฒนาอยู่ ฟีเจอร์ใหม่ๆถูกเพิ่มเข้ามาอย่างสม่ำเสมอ และเครื่องมืออื่นๆเช่นเบราว์เซอร์ มีการพัฒนาอย่างต่อเนื่อง ซึ่งเป็นสาเหตุให้เกิดปัญหาความเข้ากันได้ของฟีเจอร์ใหม่ๆ ที่เพิ่งเพิ่มเข้ามา

หรือจะใช้กูเกิ้ลค้นหาสิ่งที่ต้องการก็ได้ เราแนะนำให้ใช้คำว่า "MDN [term]" ต่อด้วยคำที่ต้องการสืบค้น เช่น <https://google.com/search?q=MDN+parseInt> เพื่อค้นหาฟังก์ชัน `parseInt`
หากต้องการดูการรองรับของฟีเจอร์ใหม่ๆบนเบราว์เซอร์และเครื่องมืออื่นๆ สามารถดูได้ที่:

## เบราเซอร์แต่ละตัวสนับสนุนฟีเจอร์ใดบ้าง
- <http://caniuse.com> - ตารางการรองรับแต่ละฟีเจอร์ เช่น เพื่อดูว่าเครื่องมือใดรองรับฟังก์ชันการเข้ารหัสข้อมูลบ้าง: <http://caniuse.com/#feat=cryptography>.
- <https://kangax.github.io/compat-table> - ตารางฟีเจอร์ภาษาและเครื่องมือที่รองรับหรือไม่รองรับฟีเจอร์นั้นๆ

จาวาสตริปต์เป็นภาษาที่กำลังพัฒนา มีการเพิ่มฟีเจอร์ใหม่ๆอยู่เป็นประจำ
ทั้งหมดเป็นแหล่งข้อมูลที่มีประโยชน์ในการพัฒนาที่ใช้ในชีวิตประจำวัน เนื่องจากมีข้อมูลเกี่ยวกับรายละเอียดของภาษา การรองรับ ฯลฯ

หากต้องการดูการสนับสนุนระหว่างเบราว์เซอร์และเครื่องมืออื่นๆ โปรดดูได้ที่:

- <http://caniuse.com> - ตารางฟีเจอร์ที่สนับสนุน, เช่น การดูเอนจิ้นตัวใดสนับสนุนฟังก์ชันการเข้ารหัสบ้าง: <http://caniuse.com/#feat=cryptography>.
- <https://kangax.github.io/compat-table> - ตารางฟีเจอร์ที่สนับสนุนแบบละเอียด

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

โปรดจำไว้ (หรือหน้านี้) สำหรับกรณีที่คุณต้องการข้อมูลเชิงลึกเกี่ยวกับฟีเจอร์นั้นๆเท่านั้น
โปรดจำไว้ (หรือจำหน้านี้ไว้) ในกรณีที่คุณต้องการข้อมูลละเอียดเกี่ยวกับฟีเจอร์เฉพาะตัว หรือต้องการดูว่าฟีเจอร์ใหม่ๆนั้นรองรับบนเบราว์เซอร์หรือไม่ หรือบนเครื่องมืออื่นๆหรือไม่