diff --git a/1-js/01-getting-started/1-intro/article.md b/1-js/01-getting-started/1-intro/article.md
index 2f4f518f3..48c872d4e 100644
--- a/1-js/01-getting-started/1-intro/article.md
+++ b/1-js/01-getting-started/1-intro/article.md
@@ -1,72 +1,99 @@
-# An Introduction to JavaScript
+# บทนำสู่ JavaScript
-Let's see what's so special about JavaScript, what we can achieve with it, and what other technologies play well with it.
+มาดูกันว่า JavaScript มีลักษณะพิเศษอะไรบ้าง เราสามารถทำอะไรได้ด้วยภาษานี้ และมันเข้ากันได้ดีกับเทคโนโลยีใดบ้าง
-## What is JavaScript?
+## JavaScript คืออะไร?
-*JavaScript* was initially created to "make web pages alive".
+*JavaScript* ถูกสร้างขึ้นเพื่อ "ทำให้เว็บเพจมีชีวิตชีวา"
-The programs in this language are called *scripts*. They can be written right in a web page's HTML and run automatically as the page loads.
+โปรแกรมที่เขียนด้วยภาษานี้เรียกว่า *สคริปต์* ซึ่งสามารถแทรกลงในโค้ด HTML ของเว็บเพจได้โดยตรง และทำงานโดยอัตโนมัติเมื่อเพจนั้นโหลดขึ้นมา
-Scripts are provided and executed as plain text. They don't need special preparation or compilation to run.
+สคริปต์จะถูกเตรียมและประมวลผลในรูปแบบข้อความธรรมดา ไม่จำเป็นต้องมีขั้นตอนการเตรียมหรือคอมไพล์พิเศษใดๆ ก่อนการทำงาน
-In this aspect, JavaScript is very different from another language called [Java](https://en.wikipedia.org/wiki/Java_(programming_language)).
+ในแง่นี้ JavaScript แตกต่างจากภาษา [Java](https://en.wikipedia.org/wiki/Java_(programming_language)) อย่างชัดเจน
-```smart header="Why is it called JavaScript?"
-When JavaScript was created, it initially had another name: "LiveScript". But Java was very popular at that time, so it was decided that positioning a new language as a "younger brother" of Java would help.
+```smart header="ทำไมถึงมีชื่อว่า JavaScript?"
+เมื่อ JavaScript ถูกสร้างขึ้นในยุคแรก มันมีชื่อว่า "LiveScript" แต่เนื่องจากในขณะนั้น Java กำลังได้รับความนิยมอย่างสูง จึงมีการตัดสินใจว่าการนำเสนอภาษาใหม่นี้ในฐานะ "น้องชาย" ของ Java จะช่วยให้เป็นที่สนใจมากขึ้น
-But as it evolved, JavaScript became a fully independent language with its own specification called [ECMAScript](http://en.wikipedia.org/wiki/ECMAScript), and now it has no relation to Java at all.
+แต่เมื่อมันค่อยๆ พัฒนาไป ในที่สุด JavaScript ก็กลายเป็นภาษาที่มีเอกลักษณ์เฉพาะตัวอย่างสมบูรณ์ มีมาตรฐานของตัวเองที่เรียกว่า [ECMAScript](http://en.wikipedia.org/wiki/ECMAScript) และปัจจุบันไม่มีความเกี่ยวข้องใดๆ กับ Java อีกต่อไป
```
-Today, JavaScript can execute not only in the browser, but also on the server, or actually on any device that has a special program called [the JavaScript engine](https://en.wikipedia.org/wiki/JavaScript_engine).
+ในยุคปัจจุบัน JavaScript สามารถทำงานได้ไม่เพียงแค่ในเบราว์เซอร์ แต่ยังรันได้บนเซิร์ฟเวอร์หรืออุปกรณ์ใดๆ ที่มีโปรแกรมพิเศษที่เรียกว่า [the JavaScript engine](https://en.wikipedia.org/wiki/JavaScript_engine)
-The browser has an embedded engine sometimes called a "JavaScript virtual machine".
+เบราว์เซอร์แต่ละตัวมี engine ของตัวเองฝังอยู่ในตัว บางครั้งเรียกว่า "JavaScript virtual machine"
-Different engines have different "codenames". For example:
+Engine แต่ละตัวมีชื่อเรียก (codename) ที่แตกต่างกัน เช่น:
-- [V8](https://en.wikipedia.org/wiki/V8_(JavaScript_engine)) -- in Chrome, Opera and Edge.
-- [SpiderMonkey](https://en.wikipedia.org/wiki/SpiderMonkey) -- in Firefox.
-- ...There are other codenames like "Chakra" for IE, "JavaScriptCore", "Nitro" and "SquirrelFish" for Safari, etc.
+- [V8](https://en.wikipedia.org/wiki/V8_(JavaScript_engine)) -- ใน Chrome, Opera และ Edge
+- [SpiderMonkey](https://en.wikipedia.org/wiki/SpiderMonkey) -- ใน Firefox
+- ...มีชื่อเรียกอื่นๆ อีก เช่น "Chakra" ใน IE, "JavaScriptCore", "Nitro" และ "SquirrelFish" ใน Safari เป็นต้น
-The terms above are good to remember because they are used in developer articles on the internet. We'll use them too. For instance, if "a feature X is supported by V8", then it probably works in Chrome, Opera and Edge.
+จำคำศัพท์เหล่านี้ไว้จะเป็นประโยชน์ เพราะมักจะถูกกล่าวถึงในบทความสำหรับนักพัฒนาบ่อยๆ เราก็จะใช้มันเช่นกัน ตัวอย่างเช่น ถ้ามีการพูดว่า "ฟีเจอร์ X รองรับโดย V8" ซึ่งหมายความว่ามันน่าจะทำงานได้ใน Chrome, Opera และ Edge
-```smart header="How do engines work?"
+```smart header="engine ทำงานอย่างไร?"
-Engines are complicated. But the basics are easy.
+Engine มีกระบวนการทำงานที่ค่อนข้างซับซ้อน แต่พื้นฐานแล้วไม่ยาก
+<<<<<<< HEAD
+1. Engine (ที่ฝังมากับเบราว์เซอร์) อ่าน ("parse") สคริปต์
+2. แล้วแปลง ("compile") สคริปต์ให้เป็นภาษาเครื่อง
+3. จากนั้นก็รันโค้ดภาษาเครื่องได้อย่างรวดเร็ว
+=======
1. The engine (embedded if it's a browser) reads ("parses") the script.
2. Then it converts ("compiles") the script to machine code.
3. And then the machine code runs, pretty fast.
+>>>>>>> 540d753e90789205fc6e75c502f68382c87dea9b
-The engine applies optimizations at each step of the process. It even watches the compiled script as it runs, analyzes the data that flows through it, and further optimizes the machine code based on that knowledge.
+Engine จะใช้เทคนิคการปรับแต่งในทุกขั้นตอน มันจะติดตามข้อมูลของสคริปต์ที่ผ่านการคอมไพล์แล้ว วิเคราะห์การไหลของข้อมูล และใช้ข้อมูลที่ได้จากการวิเคราะห์นั้นมาปรับแต่งรหัสภาษาเครื่องให้ดีขึ้นไปอีก
```
-## What can in-browser JavaScript do?
+## JavaScript ในเบราว์เซอร์ทำอะไรได้บ้าง?
+<<<<<<< HEAD
+JavaScript สมัยใหม่เป็นภาษาโปรแกรมที่ "ปลอดภัย" มันไม่สามารถเข้าถึงระดับล่างของหน่วยความจำหรือซีพียูได้โดยตรง เพราะถูกออกแบบมาเพื่อใช้งานในเบราว์เซอร์ที่ไม่จำเป็นต้องใช้ฟีเจอร์เหล่านั้น
+=======
Modern JavaScript is a "safe" programming language. It does not provide low-level access to memory or the CPU, because it was initially created for browsers which do not require it.
+>>>>>>> 540d753e90789205fc6e75c502f68382c87dea9b
-JavaScript's capabilities greatly depend on the environment it's running in. For instance, [Node.js](https://wikipedia.org/wiki/Node.js) supports functions that allow JavaScript to read/write arbitrary files, perform network requests, etc.
+ความสามารถของ JavaScript นั้นขึ้นอยู่กับสภาพแวดล้อมที่มันทำงานอยู่เป็นอย่างมาก เช่น [Node.js](https://wikipedia.org/wiki/Node.js) ช่วยเสริมความสามารถให้ JavaScript สามารถอ่านหรือเขียนแฟ้มใดๆ ก็ได้ ส่งคำขอผ่านเน็ตเวิร์ค เป็นต้น
-In-browser JavaScript can do everything related to webpage manipulation, interaction with the user, and the webserver.
+ส่วน JavaScript ในเบราว์เซอร์นั้น สามารถทำอะไรก็ตามที่เกี่ยวข้องกับการจัดการเว็บเพจ การโต้ตอบกับผู้ใช้ และเว็บเซิร์ฟเวอร์
-For instance, in-browser JavaScript is able to:
+ตัวอย่างเช่น JavaScript ในเบราว์เซอร์สามารถ:
-- Add new HTML to the page, change the existing content, modify styles.
-- React to user actions, run on mouse clicks, pointer movements, key presses.
-- Send requests over the network to remote servers, download and upload files (so-called [AJAX](https://en.wikipedia.org/wiki/Ajax_(programming)) and [COMET](https://en.wikipedia.org/wiki/Comet_(programming)) technologies).
-- Get and set cookies, ask questions to the visitor, show messages.
-- Remember the data on the client-side ("local storage").
+- เพิ่ม HTML ใหม่ลงในหน้าเว็บ เปลี่ยนแปลงเนื้อหาที่มีอยู่ แก้ไขรูปแบบ (style) ของหน้าเว็บ
+- ตอบสนองต่อการกระทำของผู้ใช้ เช่นการคลิกเมาส์ การเลื่อนเคอร์เซอร์ และการกดปุ่ม
+- ส่งคำขอไปยังเซิร์ฟเวอร์ผ่านเครือข่าย ดาวน์โหลดและอัปโหลดไฟล์ (เรียกกันว่า [AJAX](https://en.wikipedia.org/wiki/Ajax_(programming)) และ [COMET](https://en.wikipedia.org/wiki/Comet_(programming)))
+- รับและตั้งค่าคุกกี้ ถามคำถามผู้ใช้ แสดงข้อความ
+- จำข้อมูลฝั่งไคลเอนต์ ("local storage")
-## What CAN'T in-browser JavaScript do?
+## JavaScript ในเบราว์เซอร์ทำอะไรไม่ได้บ้าง?
+<<<<<<< HEAD
+ความสามารถของ JavaScript ในเบราว์เซอร์มีข้อจำกัดเพื่อความปลอดภัยของผู้ใช้ มีจุดประสงค์เพื่อป้องกันหน้าเว็บที่ไม่น่าไว้วางใจจากการเข้าถึงข้อมูลส่วนตัว หรือทำให้ข้อมูลของผู้ใช้เสียหาย
+=======
JavaScript's abilities in the browser are limited to protect the user's safety. The aim is to prevent an evil webpage from accessing private information or harming the user's data.
+>>>>>>> 540d753e90789205fc6e75c502f68382c87dea9b
-Examples of such restrictions include:
+ตัวอย่างของข้อจำกัดเหล่านั้น ได้แก่:
-- JavaScript on a webpage may not read/write arbitrary files on the hard disk, copy them or execute programs. It has no direct access to OS functions.
+- JavaScript ในหน้าเว็บไม่สามารถอ่าน/เขียน/คัดลอกไฟล์ในฮาร์ดดิสก์ หรือเรียกใช้โปรแกรมอื่นๆ ได้โดยตรง มันไม่มีสิทธิ์เข้าถึงฟังก์ชันระบบของระบบปฏิบัติการเองโดยตรง
- Modern browsers allow it to work with files, but the access is limited and only provided if the user does certain actions, like "dropping" a file into a browser window or selecting it via an `` tag.
+ เบราว์เซอร์รุ่นใหม่ๆ อนุญาตให้มันทำงานกับไฟล์ได้บ้าง แต่การเข้าถึงนั้นจะถูกจำกัดมากและต้องได้รับการยินยอมจากผู้ใช้ เช่นการ "ลาก" ไฟล์ลงในหน้าเว็บ หรือเลือกผ่านแท็ก ``
+<<<<<<< HEAD
+ มีวิธีโต้ตอบกับกล้อง ไมโครโฟน และอุปกรณ์อื่นๆ ได้ แต่ต้องได้รับอนุญาตอย่างชัดเจนจากผู้ใช้เสมอ เพราะฉะนั้นหน้าเว็บที่ใช้ JavaScript จะไม่สามารถเปิดเว็บแคมแอบดูโดยไม่ให้ผู้ใช้สังเกตเห็นและส่งข้อมูลไปยัง [NSA](https://en.wikipedia.org/wiki/National_Security_Agency) ได้
+- แท็บ/วินโดว์ที่แตกต่างกันโดยปกติแล้วไม่รู้จักกัน แม้ในบางครั้งที่อาจทำได้ เช่นเมื่อหน้าต่างหนึ่งใช้ JavaScript เปิดหน้าต่างอื่นขึ้นมา แต่แม้ในกรณีนี้ JavaScript จากหน้าหนึ่งก็ไม่สามารถเข้าถึงหน้าอื่นได้หาก URL ของหน้านั้นมาจากโดเมน โปรโตคอล หรือพอร์ตที่ต่างกัน เรียกว่า "Same Origin Policy"
+
+ สิ่งนี้จำเป็นต้องทำเพื่อให้มีการยินยอมและทำความเข้าใจ *ระหว่างหน้าเว็บทั้งสองฝ่าย* ในการแลกเปลี่ยนข้อมูล และต้องใช้โค้ด JavaScript พิเศษเพื่อจัดการเรื่องนี้ เราจะกล่าวถึงเรื่องนี้ในบทเรียนข้างหน้า
+
+ ข้อจำกัดนี้ก็เพื่อความปลอดภัยของผู้ใช้ด้วยเช่นกัน ไม่ควรให้หน้า `http://anysite.com` ที่เปิดอยู่ในแท็บหนึ่ง สามารถเข้าถึง URL `http://gmail.com` ในอีกแท็บของเบราว์เซอร์ ซึ่งอาจจะขโมยข้อมูลจากที่นั่นไปได้
+- JavaScript ติดต่อสื่อสารกับเซิร์ฟเวอร์ที่หน้านั้นมาจากได้โดยง่าย แต่ความสามารถในการรับข้อมูลจากโดเมนหรือไซต์อื่นๆ นั้นถูกจำกัด เป็นไปได้แต่ต้องมีข้อตกลงชัดเจนจากเซิร์ฟเวอร์ปลายทาง (แสดงด้วย HTTP header) เป็นข้อจำกัดทางความปลอดภัยอีกเช่นกัน
+
+
+
+ข้อจำกัดเหล่านี้ไม่มีการบังคับใช้เลยหาก JavaScript ทำงานนอกเบราว์เซอร์ เช่นบนเซิร์ฟเวอร์ สำหรับเบราว์เซอร์สมัยใหม่ก็อนุญาตให้ปลั๊กอิน/ส่วนขยายขอสิทธิ์เพิ่มเติมได้
+=======
There are ways to interact with the camera/microphone and other devices, but they require a user's explicit permission. So a JavaScript-enabled page may not sneakily enable a web-camera, observe the surroundings and send the information to the [NSA](https://en.wikipedia.org/wiki/National_Security_Agency).
- Different tabs/windows generally do not know about each other. Sometimes they do, for example when one window uses JavaScript to open the other one. But even in this case, JavaScript from one page may not access the other page if they come from different sites (from a different domain, protocol or port).
@@ -78,34 +105,52 @@ Examples of such restrictions include:

Such limitations do not exist if JavaScript is used outside of the browser, for example on a server. Modern browsers also allow plugins/extensions which may ask for extended permissions.
+>>>>>>> 540d753e90789205fc6e75c502f68382c87dea9b
-## What makes JavaScript unique?
+## อะไรที่ทำให้ JavaScript โดดเด่นเป็นเอกลักษณ์?
-There are at least *three* great things about JavaScript:
+JavaScript มีอย่างน้อย *3 คุณสมบัติ* ที่โดดเด่น:
```compare
-+ Full integration with HTML/CSS.
-+ Simple things are done simply.
-+ Supported by all major browsers and enabled by default.
++ ผสานเข้ากับ HTML/CSS ได้อย่างลงตัว
++ ทำสิ่งง่ายๆ ได้อย่างง่ายดาย
++ รองรับโดยเบราว์เซอร์หลักทั้งหมด และเปิดใช้งานเป็นค่าเริ่มต้น
```
-JavaScript is the only browser technology that combines these three things.
-That's what makes JavaScript unique. That's why it's the most widespread tool for creating browser interfaces.
+JavaScript เป็นเทคโนโลยีเบราว์เซอร์เพียงอย่างเดียวที่รวมทั้ง 3 คุณสมบัตินี้เข้าด้วยกัน
+<<<<<<< HEAD
+ด้วยคุณสมบัติเฉพาะตัวเหล่านี้ ทำให้ JavaScript กลายเป็นเครื่องมือที่ได้รับความนิยมอย่างกว้างขวางในการสร้างส่วนติดต่อผู้ใช้บนเบราว์เซอร์
+=======
That said, JavaScript can be used to create servers, mobile applications, etc.
+>>>>>>> 540d753e90789205fc6e75c502f68382c87dea9b
-## Languages "over" JavaScript
+อย่างไรก็ตาม ปัจจุบัน JavaScript ยังสามารถใช้สร้างเซิร์ฟเวอร์ แอปพลิเคชันมือถือ และอื่นๆ ได้อีกด้วย
-The syntax of JavaScript does not suit everyone's needs. Different people want different features.
+## ภาษาที่ถูก "transpile" เป็น JavaScript
-That's to be expected, because projects and requirements are different for everyone.
+ไวยากรณ์ของ JavaScript อาจไม่ตอบโจทย์ความต้องการของทุกคน แต่ละคนต้องการฟีเจอร์ที่แตกต่างกันไป
+<<<<<<< HEAD
+ซึ่งเป็นเรื่องที่เข้าใจได้ เพราะแต่ละโปรเจกต์และความต้องการของแต่ละคนมีความแตกต่างกัน
+=======
So, recently a plethora of new languages appeared, which are *transpiled* (converted) to JavaScript before they run in the browser.
+>>>>>>> 540d753e90789205fc6e75c502f68382c87dea9b
+
+ดังนั้น จึงมีภาษาโปรแกรมใหม่ๆ เกิดขึ้นมากมายในช่วงไม่นานมานี้ โดยภาษาเหล่านี้จะถูก *transpile* (แปลง) เป็น JavaScript ก่อนที่จะทำงานในเบราว์เซอร์
-Modern tools make the transpilation very fast and transparent, actually allowing developers to code in another language and auto-converting it "under the hood".
+เครื่องมือสมัยใหม่ทำให้ขั้นตอนการ transpile เป็นไปได้อย่างรวดเร็วและโปร่งใส ทำให้นักพัฒนาสามารถเขียนโค้ดด้วยภาษาอื่น แล้วแปลงเป็น JavaScript โดยอัตโนมัติเบื้องหลังได้
-Examples of such languages:
+<<<<<<< HEAD
+ตัวอย่างของภาษาเหล่านั้น ได้แก่:
+- [CoffeeScript](https://coffeescript.org/) เป็น "syntactic sugar" สำหรับ JavaScript โดยนำเสนอไวยากรณ์ที่กระชับกว่า ช่วยให้เราเขียนโค้ดได้ชัดเจนและถูกต้องมากขึ้น เป็นที่นิยมในหมู่นักพัฒนา Ruby
+- [TypeScript](https://www.typescriptlang.org/) เน้นการเพิ่ม "strict data typing" เพื่อให้การพัฒนาและดูแลระบบที่ซับซ้อนง่ายขึ้น พัฒนาโดย Microsoft
+- [Flow](https://flow.org/) ก็เพิ่ม data typing เช่นกัน แต่ในรูปแบบที่แตกต่างออกไป พัฒนาโดย Facebook
+- [Dart](https://www.dartlang.org/) เป็นภาษาแยกต่างหากที่มี engine เป็นของตัวเอง สามารถทำงานในสภาพแวดล้อมที่ไม่ใช่เบราว์เซอร์ได้ (เช่น แอปมือถือ) และยังสามารถ transpile เป็น JavaScript ได้ พัฒนาโดย Google
+- [Brython](https://brython.info/) เป็น transpiler ที่แปลง Python เป็น JavaScript ทำให้สามารถเขียนแอปด้วย Python บริสุทธิ์ได้โดยไม่ต้องใช้ JavaScript
+- [Kotlin](https://kotlinlang.org/docs/reference/js-overview.html) เป็นภาษาโปรแกรมสมัยใหม่ที่กระชับและปลอดภัย สามารถกำหนดเป้าหมายไปที่เบราว์เซอร์หรือ Node ได้
+=======
- [CoffeeScript](https://coffeescript.org/) is "syntactic sugar" for JavaScript. It introduces shorter syntax, allowing us to write clearer and more precise code. Usually, Ruby devs like it.
- [TypeScript](https://www.typescriptlang.org/) is concentrated on adding "strict data typing" to simplify the development and support of complex systems. It is developed by Microsoft.
- [Flow](https://flow.org/) also adds data typing, but in a different way. Developed by Facebook.
@@ -114,9 +159,12 @@ Examples of such languages:
- [Kotlin](https://kotlinlang.org/docs/reference/js-overview.html) is a modern, concise and safe programming language that can target the browser or Node.
There are more. Of course, even if we use one of these transpiled languages, we should also know JavaScript to really understand what we're doing.
+>>>>>>> 540d753e90789205fc6e75c502f68382c87dea9b
+
+มีภาษาอื่นๆ อีกมากมาย แม้จะใช้ภาษาเหล่านี้ก็จริง แต่การศึกษา JavaScript เองก็ยังมีความจำเป็น เพื่อให้เข้าใจอย่างถ่องแท้ว่ากำลังทำอะไรอยู่
-## Summary
+## สรุป
-- JavaScript was initially created as a browser-only language, but it is now used in many other environments as well.
-- Today, JavaScript has a unique position as the most widely-adopted browser language, fully integrated with HTML/CSS.
-- There are many languages that get "transpiled" to JavaScript and provide certain features. It is recommended to take a look at them, at least briefly, after mastering JavaScript.
+- JavaScript ถูกสร้างขึ้นมาเพื่อใช้เป็นภาษาสำหรับเบราว์เซอร์โดยเฉพาะ แต่ปัจจุบันก็ถูกนำไปใช้ในสภาพแวดล้อมอื่นๆ มากมาย
+- ในปัจจุบัน JavaScript มีบทบาทสำคัญในฐานะภาษาเบราว์เซอร์ที่ได้รับการยอมรับอย่างกว้างขวางที่สุด โดยสามารถทำงานร่วมกับ HTML/CSS ได้อย่างลงตัว
+- มีภาษาอีกหลายภาษาที่ถูก "transpile" เป็น JavaScript และมีฟีเจอร์เสริมบางอย่าง แนะนำให้ลองศึกษาคร่าวๆ หลังจากที่เชี่ยวชาญ JavaScript แล้ว
diff --git a/1-js/01-getting-started/2-manuals-specifications/article.md b/1-js/01-getting-started/2-manuals-specifications/article.md
index 3fa243336..355607427 100644
--- a/1-js/01-getting-started/2-manuals-specifications/article.md
+++ b/1-js/01-getting-started/2-manuals-specifications/article.md
@@ -1,37 +1,58 @@
+# คู่มือและข้อกำหนด
-# Manuals and specifications
+หนังสือเล่มนี้เป็น *บทเรียน* ที่มุ่งหวังให้คุณค่อยๆ เรียนรู้ภาษา JavaScript อย่างเป็นขั้นเป็นตอน แต่เมื่อคุณคุ้นเคยกับพื้นฐานแล้ว คุณอาจต้องการแหล่งข้อมูลอ้างอิงเพิ่มเติม ดังนี้
+<<<<<<< HEAD
+## ข้อกำหนด
+=======
This book is a *tutorial*. It aims to help you gradually learn the language. But once you're familiar with the basics, you'll need other resources.
+>>>>>>> 540d753e90789205fc6e75c502f68382c87dea9b
-## Specification
+[ข้อกำหนด ECMA-262](https://www.ecma-international.org/publications/standards/Ecma-262.htm) เป็นเอกสารที่มีรายละเอียดเชิงลึก ครบถ้วน และเป็นทางการที่สุดเกี่ยวกับ JavaScript เป็นตัวกำหนดมาตรฐานของภาษานี้
-[The ECMA-262 specification](https://www.ecma-international.org/publications/standards/Ecma-262.htm) contains the most in-depth, detailed and formalized information about JavaScript. It defines the language.
+แต่เนื่องจากมีลักษณะเป็นทางการมาก จึงอาจทำความเข้าใจได้ยากในช่วงแรก ดังนั้น หากคุณต้องการแหล่งอ้างอิงที่ถูกต้องที่สุดเกี่ยวกับรายละเอียดต่างๆ ของภาษา ข้อกำหนดนี้คือสิ่งที่คุณควรใช้ แต่อาจไม่เหมาะสำหรับการอ้างอิงในชีวิตประจำวัน
-But being that formalized, it's difficult to understand at first. So if you need the most trustworthy source of information about the language details, the specification is the right place. But it's not for everyday use.
+ข้อกำหนดเวอร์ชันใหม่จะถูกปล่อยออกมาเป็นประจำทุกปี ในระหว่างช่วงที่ยังไม่มีการปล่อยเวอร์ชันใหม่ สามารถดูร่างข้อกำหนดล่าสุดได้ที่
+<<<<<<< HEAD
+หากคุณต้องการอ่านเกี่ยวกับคุณสมบัติใหม่ล่าสุด รวมถึงคุณสมบัติที่ "ใกล้จะเป็นมาตรฐาน" (หรือที่เรียกว่า "stage 3") สามารถดูได้ที่
+=======
A new specification version is released every year. Between these releases, the latest specification draft is at .
+>>>>>>> 540d753e90789205fc6e75c502f68382c87dea9b
-To read about new bleeding-edge features, including those that are "almost standard" (so-called "stage 3"), see proposals at .
+นอกจากนี้ ถ้าคุณกำลังพัฒนาเว็บสำหรับเบราว์เซอร์ จะมีข้อกำหนดเพิ่มเติมอื่นๆ ที่กล่าวถึงใน[ส่วนที่สอง](info:browser-environment) ของบทเรียนนี้
-Also, if you're developing for the browser, then there are other specifications covered in the [second part](info:browser-environment) of the tutorial.
+## คู่มืออ้างอิง
-## Manuals
+- **MDN (Mozilla) JavaScript Reference** เป็นคู่มือหลักที่มีตัวอย่างและข้อมูลเชิงลึกอื่นๆ เป็นแหล่งข้อมูลที่ยอดเยี่ยมสำหรับการค้นหารายละเอียดเกี่ยวกับฟังก์ชัน เมท็อด และอื่นๆ ในภาษานี้
-- **MDN (Mozilla) JavaScript Reference** is the main manual with examples and other information. It's great to get in-depth information about individual language functions, methods etc.
+ สามารถเข้าถึงได้ที่
+<<<<<<< HEAD
+ อย่างไรก็ตาม บ่อยครั้งแล้วการค้นหาโดยใช้ Google จะสะดวกกว่า เพียงพิมพ์ "MDN [คำที่ต้องการค้นหา]" เช่น ค้นหา เพื่อหาข้อมูลเกี่ยวกับฟังก์ชัน `parseInt`
+
+## ตารางความเข้ากันได้
+=======
You can find it at .
Although, it's often best to use an internet search instead. Just use "MDN [term]" in the query, e.g. to search for the `parseInt` function.
+>>>>>>> 540d753e90789205fc6e75c502f68382c87dea9b
+
+JavaScript เป็นภาษาที่มีการพัฒนาอย่างต่อเนื่อง มีการเพิ่มคุณสมบัติใหม่ๆ เป็นประจำ
-## Compatibility tables
+เพื่อตรวจสอบว่าคุณสมบัติต่างๆ นั้นรองรับโดยเบราว์เซอร์และเอ็นจิ้นอื่นๆ มากน้อยเพียงใด สามารถดูได้จาก:
-JavaScript is a developing language, new features get added regularly.
+- - แสดงตารางการรองรับคุณสมบัติแยกตามหมวดหมู่ เช่น หากต้องการดูว่าเอ็นจิ้นใดบ้างที่รองรับฟังก์ชันการเข้ารหัสลับสมัยใหม่ สามารถค้นหาได้ที่
-To see their support among browser-based and other engines, see:
+<<<<<<< HEAD
+- - ตารางแสดงคุณสมบัติต่างๆ ของภาษา และระบุว่าเอ็นจิ้นใดรองรับหรือไม่รองรับบ้าง
+แหล่งข้อมูลเหล่านี้มีประโยชน์อย่างมากในการพัฒนาจริง เนื่องจากมีข้อมูลที่สำคัญเกี่ยวกับรายละเอียดของภาษา ความเข้ากันได้ และอื่นๆ
+=======
- - per-feature tables of support, e.g. to see which engines support modern cryptography functions: .
- - a table with language features and engines that support those or don't support.
All these resources are useful in real-life development, as they contain valuable information about language details, their support, etc.
+>>>>>>> 540d753e90789205fc6e75c502f68382c87dea9b
-Please remember them (or this page) for the cases when you need in-depth information about a particular feature.
+โปรดจดจำแหล่งอ้างอิงเหล่านี้ (หรือบุ๊กมาร์กหน้านี้ไว้) เพื่อใช้ในยามที่คุณต้องการข้อมูลเชิงลึกเกี่ยวกับคุณสมบัติเฉพาะใดๆ ของภาษา
diff --git a/1-js/01-getting-started/3-code-editors/article.md b/1-js/01-getting-started/3-code-editors/article.md
index ca6194741..ceb724030 100644
--- a/1-js/01-getting-started/3-code-editors/article.md
+++ b/1-js/01-getting-started/3-code-editors/article.md
@@ -1,49 +1,71 @@
-# Code editors
+# ตัวแก้ไขโค้ด
-A code editor is the place where programmers spend most of their time.
+ตัวแก้ไขโค้ด (code editor) คือเครื่องมือที่โปรแกรมเมอร์ใช้เวลาส่วนใหญ่ในการทำงานด้วย
-There are two main types of code editors: IDEs and lightweight editors. Many people use one tool of each type.
+ตัวแก้ไขโค้ดมีสองประเภทหลักๆ คือ IDE และตัวแก้ไขแบบเบา (lightweight editor) ซึ่งนักพัฒนาหลายคนมักจะใช้ทั้งสองแบบควบคู่กันไป
## IDE
-The term [IDE](https://en.wikipedia.org/wiki/Integrated_development_environment) (Integrated Development Environment) refers to a powerful editor with many features that usually operates on a "whole project." As the name suggests, it's not just an editor, but a full-scale "development environment."
+[IDE](https://en.wikipedia.org/wiki/Integrated_development_environment) ย่อมาจาก Integrated Development Environment หมายถึงตัวแก้ไขโค้ดที่มีความสามารถสูง พร้อมฟีเจอร์ต่างๆ มากมาย โดยมักจะทำงานในระดับ "โปรเจ็กต์ทั้งหมด" ตามชื่อที่บ่งบอก มันไม่ใช่แค่ตัวแก้ไขธรรมดา แต่เป็น "สภาพแวดล้อมการพัฒนา" อย่างครบวงจร
-An IDE loads the project (which can be many files), allows navigation between files, provides autocompletion based on the whole project (not just the open file), and integrates with a version management system (like [git](https://git-scm.com/)), a testing environment, and other "project-level" stuff.
+IDE จะโหลดโครงการ (ซึ่งอาจประกอบด้วยหลายไฟล์) เข้ามา ช่วยให้เราสามารถสลับไปมาระหว่างไฟล์ต่างๆ ได้ มีระบบเติมโค้ดอัตโนมัติตามบริบทของโปรเจ็กต์ทั้งหมด (ไม่ใช่เฉพาะไฟล์ที่กำลังเปิดอยู่) และเชื่อมต่อกับระบบจัดการเวอร์ชัน เช่น [git](https://git-scm.com/) รวมถึงมีการผนวกรวมกับสภาพแวดล้อมการทดสอบ และอื่นๆ ในระดับของโครงการด้วย
-If you haven't selected an IDE yet, consider the following options:
+หากคุณยังไม่เคยเลือกใช้ IDE มาก่อน ลองพิจารณาตัวเลือกเหล่านี้ดู:
+<<<<<<< HEAD
+- [Visual Studio Code](https://code.visualstudio.com/) (รองรับหลายแพลตฟอร์ม, ฟรี)
+- [WebStorm](https://www.jetbrains.com/webstorm/) (รองรับหลายแพลตฟอร์ม, มีค่าใช้จ่าย)
+=======
- [Visual Studio Code](https://code.visualstudio.com/) (cross-platform, free).
- [WebStorm](https://www.jetbrains.com/webstorm/) (cross-platform, paid).
+>>>>>>> 540d753e90789205fc6e75c502f68382c87dea9b
-For Windows, there's also "Visual Studio", not to be confused with "Visual Studio Code". "Visual Studio" is a paid and mighty Windows-only editor, well-suited for the .NET platform. It's also good at JavaScript. There's also a free version [Visual Studio Community](https://www.visualstudio.com/vs/community/).
+สำหรับ Windows ยังมี "Visual Studio" ด้วย อย่าสับสนกับ "Visual Studio Code" นะ "Visual Studio" เป็น IDE ที่ทรงพลังและเสียค่าใช้จ่าย มีเฉพาะบน Windows เท่านั้น เหมาะสำหรับการพัฒนาบนแพลตฟอร์ม .NET และสามารถใช้งานกับ JavaScript ได้เป็นอย่างดีเช่นกัน โดยมีเวอร์ชันฟรีชื่อ [Visual Studio Community](https://www.visualstudio.com/vs/community/)
-Many IDEs are paid, but have a trial period. Their cost is usually negligible compared to a qualified developer's salary, so just choose the best one for you.
+IDE หลายตัวมีค่าใช้จ่าย แต่ก็มีระยะทดลองใช้ฟรี ซึ่งเมื่อเทียบกับเงินเดือนของนักพัฒนาที่ดีแล้ว ค่าใช้จ่ายเหล่านั้นถือว่าน้อยมาก ดังนั้นควรเลือกตัวที่เหมาะสมกับตัวเองที่สุด
-## Lightweight editors
+## ตัวแก้ไขแบบเบา
-"Lightweight editors" are not as powerful as IDEs, but they're fast, elegant and simple.
+ตัวแก้ไขแบบเบา (lightweight editor) อาจจะไม่ทรงพลังเท่า IDE แต่มันมีความเร็ว เบา และเรียบง่าย
-They are mainly used to open and edit a file instantly.
+ส่วนใหญ่แล้วจะใช้เพื่อเปิดและแก้ไขไฟล์ได้อย่างรวดเร็ว
-The main difference between a "lightweight editor" and an "IDE" is that an IDE works on a project-level, so it loads much more data on start, analyzes the project structure if needed and so on. A lightweight editor is much faster if we need only one file.
+ความแตกต่างหลักระหว่าง "ตัวแก้ไขแบบเบา" กับ "IDE" ก็คือ IDE จะทำงานในระดับโปรเจ็กต์ ดังนั้นตอนเริ่มต้นโหลดมันจะใช้เวลามากกว่า ต้องวิเคราะห์โครงสร้างโปรเจ็กต์หากจำเป็น และอื่นๆ อีกมาก ส่วนตัวแก้ไขแบบเบานั้นจะเปิดไฟล์ได้เร็วกว่ามาก
-In practice, lightweight editors may have a lot of plugins including directory-level syntax analyzers and autocompleters, so there's no strict border between a lightweight editor and an IDE.
+ในทางปฏิบัติ ตัวแก้ไขแบบเบาก็อาจมีปลั๊กอินต่างๆ เพิ่มเข้ามาได้มากมาย รวมถึงมีตัวช่วยวิเคราะห์ไวยากรณ์และระบบเติมโค้ดอัตโนมัติในระดับไดเรกทอรี ทำให้แยกความแตกต่างระหว่างตัวแก้ไขแบบเบากับ IDE ได้ไม่ชัดเจนนัก
+<<<<<<< HEAD
+มีตัวเลือกมากมาย เช่น:
+
+- [Sublime Text](https://www.sublimetext.com/) (รองรับหลายแพลตฟอร์ม, shareware)
+- [Notepad++](https://notepad-plus-plus.org/) (Windows, ฟรี)
+- [Vim](https://www.vim.org/) และ [Emacs](https://www.gnu.org/software/emacs/) ก็เจ๋งมากหากคุณรู้วิธีใช้
+=======
There are many options, for instance:
- [Sublime Text](https://www.sublimetext.com/) (cross-platform, shareware).
- [Notepad++](https://notepad-plus-plus.org/) (Windows, free).
- [Vim](https://www.vim.org/) and [Emacs](https://www.gnu.org/software/emacs/) are also cool if you know how to use them.
+>>>>>>> 540d753e90789205fc6e75c502f68382c87dea9b
+
+## อย่าถกเถียงกันเลย
+
+ตัวแก้ไขโค้ดที่ยกตัวอย่างมาข้างต้น เป็นที่นิยมใช้กันมานานแล้วในหมู่ผู้เขียนและเพื่อนๆ ที่เป็นนักพัฒนาชั้นยอด และทุกคนก็พอใจกับมัน
-## Let's not argue
+แน่นอนว่ายังมีตัวแก้ไขโค้ดอื่นๆ อีกมากมายในโลกกว้าง เลือกใช้ตัวที่คุณชื่นชอบที่สุดแล้วกัน
-The editors in the lists above are those that either I or my friends whom I consider good developers have been using for a long time and are happy with.
+<<<<<<< HEAD
+การเลือกใช้ตัวแก้ไขโค้ด ก็เหมือนกับการเลือกใช้เครื่องมืออื่นๆ เป็นเรื่องของรสนิยมส่วนบุคคล และขึ้นอยู่กับประเภทของโปรเจ็กต์ นิสัยการทำงาน และความชอบเฉพาะตัวของแต่ละคน
-There are other great editors in our big world. Please choose the one you like the most.
+ความเห็นส่วนตัวของผู้เขียน:
+- ผมใช้ [Visual Studio Code](https://code.visualstudio.com/) หากพัฒนา frontend (ฝั่งหน้าบ้าน) เป็นหลัก
+- แต่หากใช้ภาษา/แพลตฟอร์มอื่นๆ เป็นส่วนใหญ่ โดยมี frontend แค่บางส่วน ผมจะพิจารณาใช้ตัวอื่น เช่น XCode (Mac), Visual Studio (Windows) หรือ IDE จากค่าย Jetbrains (WebStorm สำหรับ JavaScript, PHPStorm สำหรับ PHP, RubyMine สำหรับ Ruby เป็นต้น) ทั้งนี้ขึ้นอยู่กับภาษาหลักของโปรเจ็กต์
+=======
The choice of an editor, like any other tool, is individual and depends on your projects, habits, and personal preferences.
The author's personal opinion:
- I'd use [Visual Studio Code](https://code.visualstudio.com/) if I develop mostly frontend.
- Otherwise, if it's mostly another language/platform and partially frontend, then consider other editors, such as XCode (Mac), Visual Studio (Windows) or Jetbrains family (Webstorm, PHPStorm, RubyMine etc, depending on the language).
+>>>>>>> 540d753e90789205fc6e75c502f68382c87dea9b
diff --git a/1-js/01-getting-started/4-devtools/article.md b/1-js/01-getting-started/4-devtools/article.md
index bbe8af920..cd5b849a3 100644
--- a/1-js/01-getting-started/4-devtools/article.md
+++ b/1-js/01-getting-started/4-devtools/article.md
@@ -1,63 +1,67 @@
-# Developer console
+# คอนโซลนักพัฒนา
-Code is prone to errors. You will quite likely make errors... Oh, what am I talking about? You are *absolutely* going to make errors, at least if you're a human, not a [robot](https://en.wikipedia.org/wiki/Bender_(Futurama)).
+เมื่อเขียนโค้ด มักจะเกิดข้อผิดพลาดได้เสมอ ไม่ว่าคุณจะระมัดระวังแค่ไหน ก็ยังมีโอกาสทำผิดพลาดอยู่ดี... เอ่อ กำลังพูดถึงอะไรอยู่น่ะ? ต้องขอแก้ใหม่ หากคุณเป็นมนุษย์ คุณ *จะต้อง* ทำผิดพลาดแน่ๆ ยกเว้นว่าคุณจะเป็น[หุ่นยนต์](https://en.wikipedia.org/wiki/Bender_(Futurama))
-But in the browser, users don't see errors by default. So, if something goes wrong in the script, we won't see what's broken and can't fix it.
+แต่โดยค่าเริ่มต้น ผู้ใช้จะไม่เห็นข้อผิดพลาดเหล่านั้นบนหน้าเว็บ ดังนั้น หากสคริปต์มีจุดบกพร่อง เราจะไม่รู้ว่ามันพังตรงไหน ทำให้ไม่สามารถแก้ไขได้
-To see errors and get a lot of other useful information about scripts, "developer tools" have been embedded in browsers.
+เพื่อให้เห็นข้อผิดพลาดและข้อมูลดีบั๊กที่มีประโยชน์อื่นๆ เกี่ยวกับสคริปต์ เบราว์เซอร์จึงมี "เครื่องมือนักพัฒนา" (developer tools) ติดตั้งมาด้วย
-Most developers lean towards Chrome or Firefox for development because those browsers have the best developer tools. Other browsers also provide developer tools, sometimes with special features, but are usually playing "catch-up" to Chrome or Firefox. So most developers have a "favorite" browser and switch to others if a problem is browser-specific.
+นักพัฒนาส่วนใหญ่นิยมใช้ Chrome หรือ Firefox ในการพัฒนา เพราะมีเครื่องมือนักพัฒนาที่ทรงพลังที่สุด แม้ว่าเบราว์เซอร์อื่นๆ ก็มีเครื่องมือที่คล้ายกัน บางทีอาจจะมีฟีเจอร์พิเศษด้วย แต่มักจะตามหลัง Chrome หรือ Firefox เสมอ ดังนั้นนักพัฒนาจึงมักมีเบราว์เซอร์ "โปรด" สำหรับทำงาน และเปลี่ยนไปใช้เบราว์เซอร์อื่นเป็นครั้งคราวเมื่อพบปัญหาเฉพาะของเบราว์เซอร์นั้น
-Developer tools are potent; they have many features. To start, we'll learn how to open them, look at errors, and run JavaScript commands.
+เครื่องมือนักพัฒนานั้นมีประสิทธิภาพสูงและมีฟีเจอร์มากมาย ในช่วงแรก เราจะเรียนรู้วิธีเปิดใช้งาน ดูข้อผิดพลาด และรันคำสั่ง JavaScript กัน
## Google Chrome
-Open the page [bug.html](bug.html).
+ลองเปิดหน้า [bug.html](bug.html) ดู
-There's an error in the JavaScript code on it. It's hidden from a regular visitor's eyes, so let's open developer tools to see it.
+ในโค้ด JavaScript บนหน้านั้นมีบั๊กซ่อนอยู่ มันถูกซ่อนไว้จากสายตาผู้ใช้ทั่วไป เราลองเปิดเครื่องมือนักพัฒนาเพื่อมองหามันกัน
-Press `key:F12` or, if you're on Mac, then `key:Cmd+Opt+J`.
+กด `key:F12` หรือหากใช้ Mac ให้กด `key:Cmd+Opt+J`
-The developer tools will open on the Console tab by default.
+เครื่องมือนักพัฒนาจะเปิดขึ้นที่แท็บ Console เป็นค่าเริ่มต้น
-It looks somewhat like this:
+หน้าตาจะออกมาประมาณนี้:

-The exact look of developer tools depends on your version of Chrome. It changes from time to time but should be similar.
+รูปลักษณ์ที่แน่นอนของเครื่องมือนักพัฒนาขึ้นอยู่กับเวอร์ชันของ Chrome ที่ใช้ มันมีการเปลี่ยนแปลงไปเรื่อยๆ แต่น่าจะคล้ายๆ กับในภาพ
-- Here we can see the red-colored error message. In this case, the script contains an unknown "lalala" command.
-- On the right, there is a clickable link to the source `bug.html:12` with the line number where the error has occurred.
+- ตรงนี้เราจะเห็นข้อความแสดงข้อผิดพลาดสีแดง ในกรณีนี้ สคริปต์มีคำสั่งที่ไม่รู้จักชื่อ "lalala"
+- ทางด้านขวา จะมีลิงก์ที่คลิกได้ ซึ่งจะระบุไฟล์ต้นทาง `bug.html:12` พร้อมเลขบรรทัดที่เกิดข้อผิดพลาด
-Below the error message, there is a blue `>` symbol. It marks a "command line" where we can type JavaScript commands. Press `key:Enter` to run them.
+ใต้ข้อความแสดงข้อผิดพลาดจะมีสัญลักษณ์ `>` สีฟ้า นี่คือ "บรรทัดคำสั่ง" (command line) ที่เราสามารถพิมพ์คำสั่ง JavaScript แล้วกด `key:Enter` เพื่อรันมันได้
-Now we can see errors, and that's enough for a start. We'll come back to developer tools later and cover debugging more in-depth in the chapter .
+ตอนนี้เราก็เห็นข้อผิดพลาดแล้ว ซึ่งเพียงพอสำหรับการเริ่มต้น เราจะกลับมาศึกษาเครื่องมือนักพัฒนากันอีกในภายหลัง และจะคุยเรื่องการดีบั๊กอย่างละเอียดมากขึ้นในบท
-```smart header="Multi-line input"
-Usually, when we put a line of code into the console, and then press `key:Enter`, it executes.
+```smart header="การป้อนหลายบรรทัด"
+โดยปกติ เมื่อเราพิมพ์โค้ดบรรทัดเดียวลงไปในคอนโซล และกด `key:Enter` มันจะรันคำสั่งนั้นทันที
-To insert multiple lines, press `key:Shift+Enter`. This way one can enter long fragments of JavaScript code.
+แต่ถ้าต้องการพิมพ์หลายบรรทัด ให้กด `key:Shift+Enter` แทน วิธีนี้จะช่วยให้เราใส่ชิ้นส่วนโค้ด JavaScript ยาวๆ ได้
```
-## Firefox, Edge, and others
+## Firefox, Edge และอื่นๆ
-Most other browsers use `key:F12` to open developer tools.
+เบราว์เซอร์ส่วนใหญ่ใช้ `key:F12` เพื่อเปิดเครื่องมือนักพัฒนา
-The look & feel of them is quite similar. Once you know how to use one of these tools (you can start with Chrome), you can easily switch to another.
+ลักษณะและความรู้สึกในการใช้งานค่อนข้างใกล้เคียงกัน เมื่อคุณรู้วิธีใช้เครื่องมือใดเครื่องมือหนึ่ง (เช่น เริ่มจาก Chrome) คุณก็สามารถเปลี่ยนไปใช้อันอื่นๆ ได้อย่างง่ายดาย
## Safari
-Safari (Mac browser, not supported by Windows/Linux) is a little bit special here. We need to enable the "Develop menu" first.
+Safari (เบราว์เซอร์ของ Mac ไม่รองรับ Windows/Linux) จะแตกต่างออกไปเล็กน้อย เราต้องเปิดใช้งาน "Develop menu" ก่อน
+<<<<<<< HEAD
+ไปที่ Preferences และเลือกแท็บ "Advanced" จะเห็นช่องทำเครื่องหมายที่ด้านล่างของหน้า:
+=======
Open Settings and go to the "Advanced" pane. There's a checkbox at the bottom:
+>>>>>>> 540d753e90789205fc6e75c502f68382c87dea9b

-Now `key:Cmd+Opt+C` can toggle the console. Also, note that the new top menu item named "Develop" has appeared. It has many commands and options.
+ตอนนี้ `key:Cmd+Opt+C` จะสามารถเปิด/ปิดคอนโซลได้ และสังเกตว่าจะมีเมนูใหม่ชื่อ "Develop" ปรากฏที่ด้านบนขวา ซึ่งมีคำสั่งและตัวเลือกต่างๆ มากมาย
-## Summary
+## สรุป
-- Developer tools allow us to see errors, run commands, examine variables, and much more.
-- They can be opened with `key:F12` for most browsers on Windows. Chrome for Mac needs `key:Cmd+Opt+J`, Safari: `key:Cmd+Opt+C` (need to enable first).
+- เครื่องมือนักพัฒนาช่วยให้เราเห็นข้อผิดพลาด รันคำสั่ง ตรวจสอบตัวแปร และอีกสารพัด
+- สามารถเปิดใช้งานได้ด้วย `key:F12` ในเบราว์เซอร์ส่วนใหญ่บน Windows ส่วน Chrome บน Mac ใช้ `key:Cmd+Opt+J`, Safari ใช้ `key:Cmd+Opt+C` (ต้องเปิดใช้ก่อน)
-Now we have the environment ready. In the next section, we'll get down to JavaScript.
+ตอนนี้เตรียมสภาพแวดล้อมเรียบร้อยแล้ว ในบทต่อๆ ไป เราจะเริ่มศึกษา JavaScript อย่างละเอียดมากขึ้น
diff --git a/1-js/01-getting-started/index.md b/1-js/01-getting-started/index.md
index b327c7860..685f6dad9 100644
--- a/1-js/01-getting-started/index.md
+++ b/1-js/01-getting-started/index.md
@@ -1,3 +1,3 @@
-# An introduction
+# บทนำ
-About the JavaScript language and the environment to develop with it.
+ในบทนี้เราจะพูดถึงเกี่ยวกับภาษา JavaScript และสภาพแวดล้อมที่ใช้ในการพัฒนาโปรแกรมด้วยภาษานี้
diff --git a/1-js/02-first-steps/01-hello-world/1-hello-alert/task.md b/1-js/02-first-steps/01-hello-world/1-hello-alert/task.md
index afed6a91d..b1f35ea9b 100644
--- a/1-js/02-first-steps/01-hello-world/1-hello-alert/task.md
+++ b/1-js/02-first-steps/01-hello-world/1-hello-alert/task.md
@@ -2,11 +2,11 @@ importance: 5
---
-# Show an alert
+# โชว์หน้าแจ้งเตือน
-Create a page that shows a message "I'm JavaScript!".
+สร้างเว็บเพจที่เปิดขึ้นมาจะแสดงหน้าต่าง `alert` ว่า "I'm JavaScript!".
-Do it in a sandbox, or on your hard drive, doesn't matter, just ensure that it works.
+ที่นี่เป็นพื้นที่การเล่นที่ปลอดภัย ดังนั้นไม่ต้องกังวลว่าคอมพิวเตอร์จะเสียหาย
[demo src="solution"]
diff --git a/1-js/02-first-steps/01-hello-world/2-hello-alert-ext/solution.md b/1-js/02-first-steps/01-hello-world/2-hello-alert-ext/solution.md
index f42c41e6d..0fa1300cf 100644
--- a/1-js/02-first-steps/01-hello-world/2-hello-alert-ext/solution.md
+++ b/1-js/02-first-steps/01-hello-world/2-hello-alert-ext/solution.md
@@ -1,8 +1,8 @@
-The HTML code:
+HTML:
[html src="index.html"]
-For the file `alert.js` in the same folder:
+สำหรับไฟล์ `alert.js` อยู่ในโฟลเดอร์เดียวกัน:
[js src="alert.js"]
diff --git a/1-js/02-first-steps/01-hello-world/2-hello-alert-ext/task.md b/1-js/02-first-steps/01-hello-world/2-hello-alert-ext/task.md
index 26168d6a7..f5d000b28 100644
--- a/1-js/02-first-steps/01-hello-world/2-hello-alert-ext/task.md
+++ b/1-js/02-first-steps/01-hello-world/2-hello-alert-ext/task.md
@@ -2,8 +2,8 @@ importance: 5
---
-# Show an alert with an external script
+# โชว์หน้าแจ้งเตือนด้วยสคริปต์จากภายนอก
-Take the solution of the previous task . Modify it by extracting the script content into an external file `alert.js`, residing in the same folder.
+ใช้ความรู้จากแบบฝึกหัดที่แล้ว ช่วยบอกเบราเซอร์ให้รู้ว่าที่อยู่ของไฟล์ `alert.js` อยู่ที่ใด ขอใบ้ว่าอยู่ในโฟลเดอร์เดียวกัน
-Open the page, ensure that the alert works.
+เปิดหน้าเว็บขึ้นมา เพื่อดูว่าสคริปต์ทำงานได้ตามที่คาดหวังไว้
diff --git a/1-js/02-first-steps/01-hello-world/article.md b/1-js/02-first-steps/01-hello-world/article.md
index 35f82bf5d..b7a200589 100644
--- a/1-js/02-first-steps/01-hello-world/article.md
+++ b/1-js/02-first-steps/01-hello-world/article.md
@@ -1,17 +1,16 @@
-# Hello, world!
+# สวัสดี ชาวโลก!
-This part of the tutorial is about core JavaScript, the language itself.
+ในส่วนนี้ของบทเรียน เราจะเริ่มศึกษาเกี่ยวกับพื้นฐานของภาษา JavaScript
-But we need a working environment to run our scripts and, since this book is online, the browser is a good choice. We'll keep the amount of browser-specific commands (like `alert`) to a minimum so that you don't spend time on them if you plan to concentrate on another environment (like Node.js). We'll focus on JavaScript in the browser in the [next part](/ui) of the tutorial.
+แต่ก่อนอื่น เราต้องมีสภาพแวดล้อมที่พร้อมสำหรับการรันสคริปต์ และเนื่องจากหนังสือเล่มนี้อยู่บนออนไลน์ เบราว์เซอร์จึงเป็นตัวเลือกที่เหมาะสม เราจะพยายามจำกัดการใช้คำสั่งเฉพาะของเบราว์เซอร์ (เช่น `alert`) ให้น้อยที่สุด เพื่อที่คุณจะได้ไม่ต้องเสียเวลากับมันมากนัก หากคุณตั้งใจจะมุ่งเน้นการใช้ JavaScript ในสภาพแวดล้อมอื่นๆ เช่น Node.js ส่วนการใช้ JavaScript ในเบราว์เซอร์โดยเฉพาะจะมีกล่าวถึงในรายละเอียดใน[ส่วนถัดไป](/ui)ของบทเรียน
-So first, let's see how we attach a script to a webpage. For server-side environments (like Node.js), you can execute the script with a command like `"node my.js"`.
+ดังนั้น ก่อนอื่นเรามาดูกันว่าจะแทรกสคริปต์ลงในหน้าเว็บได้อย่างไร ซึ่งหากเป็นสภาพแวดล้อมฝั่งเซิร์ฟเวอร์อย่าง Node.js เราสามารถรันสคริปต์โดยใช้คำสั่ง `"node my.js"` ได้เลย
+## แท็ก "script"
-## The "script" tag
+โปรแกรม JavaScript สามารถแทรกลงในเอกสาร HTML ได้เกือบทุกที่ด้วยการใช้แท็ก `
*/!*
-