From 5dbba008ef1e1b410bfff5c22492e4d5be35cabb Mon Sep 17 00:00:00 2001 From: Elecweb Date: Tue, 7 Aug 2018 17:56:53 +0700 Subject: [PATCH] Update th-TH.md (#117) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I update translation more easily reading but not change any meaning. @notsu ขอบคุณแทน dev คนไทยด้วยนะครับที่แปลภาษาไทยให้ สุดยอดเลยครับ พอดีอยากจะช่วยแปลในบางส่วนที่คิดว่าอาจจะอ่านง่ายขึ้นนะครับ ไม่ได้มีเจตนาว่าที่คุณแปลมาก่อนนั้นไม่ดี แค่อยากจะช่วยปรับปรุงด้วยครับ ถ้ามีเวลาจะมาช่วยดูอีกนะครับผม :) --- translations/th-TH.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/translations/th-TH.md b/translations/th-TH.md index 48046bb..db8bf5a 100644 --- a/translations/th-TH.md +++ b/translations/th-TH.md @@ -5,15 +5,15 @@ ## เกริ่นนำ -### ที่มาที่ไป +### จุดประสงค์ -เอกสารนี้เป็น cheatsheet สำหรับ JavaScript ที่จะแนะนำและอธิบายสิ่งที่เราน่าจะพบเจอบ่อยใน​โปรเจ็คใหม่ๆ หรือโค้ดตัวอย่างใหม่ๆ +เอกสารนี้เป็น cheatsheet ชุดคำสั่งของภาษา JavaScript ที่คุณได้พบเจอเป็นประจำใน​โปรเจ็คและโค้ดตัวอย่างใหม่ๆ -ซึ่งในบทความนี้จะไม่ได้สอน Javascript ตั้งแต่พื้นฐานให้ แต่จะช่วย Developer ที่มีพื้นฐานอยู่แล้วแต่ติดปัญหาหรือไม่เข้าใจ ได้เข้าใจคอนเซปของ Javascript สมัยใหม่ (ยกตัวอย่างเช่นกำลังเรียนรู้ React) +บทความนี้ไม่ได้มีจุดประสงค์ในการสอน Javascript ตั้งแต่พื้นฐาน แต่ต้องการจะช่วยให้ Developer ที่มีพื้นฐานอยู่แล้วแต่อาจจะติดปัญหาในการเข้าใจในโค้ด Javascript สมัยใหม่ (ยกตัวอย่างเช่นกำลังเรียนรู้ React อยู่) เนื่องจากมีการใช้ concept ของ Javascript สมัยใหม่ -นอกจากนี้บทความนี้ได้มีแนะนำทิปส่วนตัวแนบไว้บางส่วนซึ่งสามารถมาโต้แย้งหรือช่วยกันเสนอแนะได้ โดยจะมีหมายเหตุบอกเอาไว้ +นอกจากนี้ผมจะแนะนำเคล็ดลับส่วนตัว(ซึ่งอาจจะมีบางคนไม่เห็นด้วย)ใส่ไว้ในบางส่วน โดยจะมีหมายเหตุบอกเอาไว้ -> **หมายเหตุ:** คอนเซปส่วนใหญ่ในนี้จะมาจากอัปเดตใหม่ๆ ที่กำลังเป็นมาตรฐานของภาษา JavaScript (ES2015, หรือโดยทั่วไปเรียกว่า ES6). คุณสามารถดูฟีเจอร์ใหม่ๆ ที่เพิ่มเข้ามาโดยติดตามได้จากอัปเดต [ที่นี่](http://es6-features.org); ซึ่งมีครบเลยทุกข้อ +> **หมายเหตุ:** คอนเซปส่วนใหญ่ในนี้จะมาจากการอัปเดตใหม่ๆของ JavaScript (ES2015, หรือโดยทั่วไปเรียกว่า ES6). คุณสามารถดูฟีเจอร์ใหม่ๆของ Javascript ที่เพิ่มเข้ามาโดยสามารถติดตามได้จาก [ที่นี่](http://es6-features.org); ซึ่งเป็นเว็บไซต์ที่ดีทีเดียว ### แหล่งเรียนรู้ฟรีที่แนะนำเพิ่มเติม @@ -32,7 +32,7 @@ - [Modern JavaScript cheatsheet](#modern-javascript-cheatsheet) * [เกริ่นนำ](#เกริ่นนำ) - + [ที่มาที่ไป](#ที่มาที่ไป) + + [จุดประสงค์](#จุดประสงค์) + [แหล่งเรียนรู้ฟรีที่แนะนำเพิ่มเติม](#แหล่งเรียนรู้ฟรีที่แนะนำเพิ่มเติม) * [สารบัญ](#สารบัญ) * [เนื้อหา](#เนื้อหา) @@ -117,7 +117,7 @@ ตัวแปรที่ประกาศโดยใช้ ```const``` จะไม่สามารถถูก assign ค่าให้กับตัวแปรใหม่ได้ ในขณะที่ ```let``` กับ ```var``` สามารถทำได้ -แนะนำให้ประกาศตัวแปรด้วย ```const``` เป็นปกติไปก่อน และค่อยเปลี่ยนเป็น ```let``` เมื่อพบว่าตัวแปรนั้นต้องการการ*เปลี่ยนแปลงค่า (mutate)* หรือว่ามีการ assign ค่าให้ตัวแปรในภายหลัง +ผมแนะนำให้ประกาศตัวแปรด้วย ```const``` เสมอและค่อยเปลี่ยนเป็น ```let``` ถ้าคุณต้องการ*เปลี่ยนแปลงค่า (mutate)* หรือ assign ค่าให้ตัวแปรในภายหลัง @@ -165,20 +165,20 @@ console.log(person) // "John", let จะยอมให้สามารถ as #### อธิบายรายละเอียด -[*scope*](#scope_def) ของตัวแปรคร่าวๆ แล้วหมายถึง "ขอบเขตที่ตัวแปรสามารถใช้งานได้ภายในโค้ด" +อธิบาย [*scope*](#scope_def) ของตัวแปรได้อย่างคร่าวๆ หมายถึง "ขอบเขตที่ตัวแปรสามารถใช้งานได้ภายในโค้ด" ##### var -ตัวแปรที่ถูกประกาศด้วย ```var``` จะเป็น *function scoped* หมายถึงว่าเมื่อตัวแปรถูกสร้างภายใน function ทุกอย่างภายใน function นั้นสามารถเข้าถึงตัวแปรนั้นได้ และตัวแปรที่ถูกสร้างเป็น *function scoped* ใน function จะไม่สามารถถูกเข้าถึงจากภายนอก function ได้ +ตัวแปรที่ถูกประกาศด้วย ```var``` จะเป็น *function scoped* เมื่อตัวแปรถูกสร้างภายใน function โค้ดใน function นั้นสามารถเข้าถึงตัวแปรนั้นได้ และตัวแปร *function scoped* ที่ถูกสร้างใน function จะไม่สามารถถูกเข้าถึงจากภายนอก function ได้ -แนะนำให้ลองจินตนาการว่าถ้าตัวแปรเป้นตัวแปร *X scoped* หมายความว่าตัวแปรนี้เป็นทรัพย์สินของ X เท่านั้น +แนะนำให้ลองจินตนาการดูว่าถ้าตัวแปรเป็นตัวแปร *X scoped* หมายความว่าตัวแปรนี้เป็น property ของ X เท่านั้น ```javascript function myFunction() { var myVar = "Nick"; console.log(myVar); // "Nick" - myVar จะสามารถเข้าถึงได้จากภายใน function } -console.log(myVar); // จะเกิด ReferenceError เพราะ myVar จะไม่สามารถเข้าถึงได้จากภายนอก function +console.log(myVar); // จะเกิด ReferenceError เพราะ myVar ไม่สามารถเข้าถึงได้จากภายนอก function ``` ตัวอย่างเพิ่มเติมสำหรับเรื่อง scope ของตัวแปร @@ -189,14 +189,14 @@ function myFunction() { if (true) { var myVar = "John"; console.log(myVar); // "John" - // จริงๆ แล้ว myvar เป็นตัวแปร function scoped นั่นหมายความว่าตอนนี้เราได้ลบค่าตัวแปร myVar ก่อนหน้าจาก "Nick" กลายเป็น "John" + // จริงๆ แล้ว myvar เป็นตัวแปร function scoped เราแค่ได้ลบค่าตัวแปร myVar จาก "Nick" และเปลี่ยนเป็น "John" } - console.log(myVar); // "John" - จะเห้นว่าค่าได้ถูกเปลี่ยนไปแล้ว + console.log(myVar); // "John" - จะเห็นได้ว่าค่าได้ถูกเปลี่ยนไปแล้ว } -console.log(myVar); // จะเกิด ReferenceError เพราะ myVar จะไม่สามารถเข้าถึงได้จากภายนอก function +console.log(myVar); // จะเกิด ReferenceError เพราะ myVar ไม่สามารถเข้าถึงได้จากภายนอก function ``` -นอกจากนี้ตัวแปรที่ประกาสด้วย *var* จะถูกย้ายไปอยู่ด้านบนสุดของ scope เมื่อมีการ execution และนี่คือสิ่งที่เราเรียกว่า [var hoisting](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var#var_hoisting). +นอกจากนี้ตัวแปรที่ประกาสด้วย *var* จะถูกย้ายตอน execution ไปอยู่ด้านบนสุดของ scope และนี่คือสิ่งที่เราเรียกว่า [var hoisting](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var#var_hoisting). โค้ดตัวอย่างกรณีนี้: