在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:adminho/javascript开源软件地址:https://github.com/adminho/javascript开源编程语言:开源软件介绍:มาเรียนรู้ JavaScript ยุคสมัยใหม่กันเถอะ!สารบัญแนะนำภาษาจาวาสคริปต์เกริ่นนำ
ลองมาดูความนิยมของ ES6 กันจากรูปเป็นผลสำรวจปี 2016 จะเห็นว่ามาตรฐานใหม่ ES6 คนเริ่มใช้งานเยอะ ไล่จี้จาวาสคริปต์แบบเก่าติดๆ แล้ว (ES5) (ที่มา http://stateofjs.com/2016/flavors/) เครื่องมือในการพัฒนาจาวาสคริปต์ (IDE)
Node.js มันคืออะไรตับไตใส้พุง?ถ้าใครจับจาวาสคริปต์ยุคนี้ จะหนีไม่พ้นต้องรู้จัก Node.js …เอ๊ะ ว่าแต่มันคืออะไรล่ะ? ถ้าอธิบายสั้นๆ มันคือตัวรันไทม์ (Runtime) ของภาษาจาวาสคริปต์ โดยที่เราไม่ต้องพึ่งพาเว็บบราวเซอร์เลย ด้วยเหตุนี้จึงสามารถรันจาวาสคริปต์นอกเว็บเบราเซอร์ได้ ซึ่งปัจจุบันเขานิยมนำ Node.js มาใช้งานฝั่งเซิร์ฟเวอร์ (Back-end) หรือจะทำงานตามลำพังเป็นแบบ Standalone ก็ย่อมได้นะลูกพี่ ถ้าสนใจเนื้อหาของ Node.js มากกว่านี้ ก็สามารถอ่าน ebook ที่ผมแจกฟรีได้ที่
*** ต้องสมัครเป็นสมาชิกของ http://www.ebooks.in.th ถึงจะโหลด PDF ได้
ตัวอย่างจาวาสคริปต์บนเว็บเบราเซอร์ตัวอย่างต่อไปนี้จะแสดงการเขียนจาวาสคริปต์ตามมาตรฐานเก่า ES5 ซึ่งจะต้องแทรกอยู่ภายใต้แท็ก < script > ...< /script > ของไฟล์ HTML โดยทั้งนี้จะสมมติว่าบันทึกเป็นไฟล์ index.html *** ผมขอติ้งต่างว่า คุณเขียนจาวาสคริปต์บน HTML เป็นกันอยู่แล้วเนอะ <!-- ไฟล์ชื่อ index.html-->
<!DOCTYPE html>
<html>
<head></head>
<body>
<h1 id="element1"></h1>
<script>
// ซอร์สโค้ดตามมาตราฐานเก่า ES5
function say(message){
var element = document.querySelector('#element1');
element.innerHTML = message;
}
say("Hello, world!");
</script>
</body>
</html> โครงสร้างโปรเจค C:\ES6>
|-- index.html เมื่อดับเบิลคลิกที่ไฟล์ index.html จะปรากฏตามรูป ตัวอย่างจาวาสคริปต์นอกเว็บเบราเซอร์ต่อไปจะแสดงการใช้งานจาวาสคริปต์นอกเว็บเบราเซอร์ ด้วยการใช้ Node.js รันไฟล์จาวาสคริปต์ในฝั่งเซิร์ฟเวอร์ var http = require('http');
http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end("Hello, world!");
}).listen(8001, '127.0.0.1');
console.log('Server running at http://127.0.0.1:8001/'); ซอร์สโค้ดข้างบน อย่าเพิ่งสนใจรายละเอียดนะครับ (มันนอกประเด็น) แต่จะสมว่าบันทึกเป็นไฟล์ server.js ดังโครงสร้างโปรเจคต่อไปนี้ C:\ES6>
|-- server.js รันไฟล์ server.js ผ่านทาง Node.js ด้วยความสั่งต่อไปนี้ ตามรูป *** อ่านวิธีติดตั้ง และใช้งาน Node.js เพิ่มเติม ได้จากหนังสือที่ผมแจกฟรีข้างต้นนะครับ เมื่อเปิดเว็บเบราเซอร์แล้วกรอก URL เป็น http://127.0.0.1:8001/ ก็จะเห็นข้อความ Hello, world! แสดงออกมาทางหน้าเว็บเพจ ตามรูป ตัวอย่างการเขียน ES6 กับ ES7 บนเว็บเบราเซอร์เนื่องจากเว็บเบราเซอร์ส่วนใหญ่จะใช้งานได้กับ ES5 ด้วยเหตุนี้จึงต้องนำซอร์สโค้ดที่เขียนด้วย ES6 มาคอมไพล์ ด้วยคอมไพเลอร์ที่เรียกว่า “transpiler” เพื่อแปลงจาก ES6 ให้กลายมาเป็นเวอร์ชั่น ES5 ที่เว็บเบราเซอร์ส่วนใหญ่ใช้งานได้ไปก่อน Traceurโดยตัวอย่างต่อไปนี้จะแสดงการเขียนจาวาสคริปต์บนเว็บเบราเซอร์ โดยใช้ Traceur ทำตัวเป็น transpiler (อย่าเพิ่งสนใจรายละเอียดซอร์สโค้ดที่ยกมาให้ดูนะครับ) <!-- ไฟล์ index.html-->
<!DOCTYPE html>
<html>
<head>
<!-- Traceur (ใช้เป็นตัว transpiler)-->
<script src="https://google.github.io/traceur-compiler/bin/traceur.js"></script>
<script src="https://google.github.io/traceur-compiler/bin/BrowserSystem.js"></script>
<script src="https://google.github.io/traceur-compiler/src/bootstrap.js"></script>
</head>
<body>
<h1 id="element1"></h1>
<script type="module"> // ต้องเขียนกำกับ type = "module"
class Chat{ // class ไวยากรณ์ใหม่ของ ES6
constructor(message) { // constructor ไวยากรณ์ใหม่ของ ES6
this.message = message;
}
say(){
let element = document.querySelector('#element1');
element.innerHTML = this.message;
}
}
let chat = new Chat("Hello, world!"); // let ไวยากรณ์ใหม่ของ ES6
chat.say();
// ตัวอย่างโค้ด ES7 ชุดนี้ยังรันได้เฉพาะบน Google Chrome
let array = ["A", "B", "C"]; // let ไวยากรณ์ใหม่ของ ES6
console.log(array.includes("A")); // true -- เมธอดของอาร์เรย์ที่เพิ่มเข้ามาใน ES7
</script>
</body>
</html> จะสมมติว่าบันทึกเป็นไฟล์ index.html โดยมีโครงสร้างโปรเจคดังนี้ C:\ES6>
|-- index.html เมื่อดับเบิลคลิกที่ไฟล์ index.html จะปรากฏตามรูป สังเกตในโค้ดจะต้องระบุ < script type="module" > แต่ถ้าจะเขียนโค้ดจาวาสคริปต์ แยกออกมาเป็นไฟล์ .js เช่น mylib.js ก็สามารถทำได้ โดยจะมีโครงสร้างข้างล่าง C:\ES6>
|-- index.html
|-- mylib.js ส่วนไฟล์ mylib.js ก็หน้าตาแบบนี้ไง แค่แยกโค้ดจาวาสคริปต์ออกมา class Chat{ // class ไวยากรณ์ใหม่ของ ES6
constructor(message) { // constructor ไวยากรณ์ใหม่ของ ES6
this.message = message;
}
say(){
let element = document.querySelector('#element1');
element.innerHTML = this.message;
}
}
let chat = new Chat("Hello, world!"); // let ไวยากรณ์ใหม่ของ ES6
chat.say();
// ตัวอย่างโค้ด ES7 ชุดนี้ยังรันได้เฉพาะบน Google Chrome
let array = ["A", "B", "C"]; // let ไวยากรณ์ใหม่ของ ES6
console.log(array.includes("A")); // true -- เมธอดของอาร์เรย์ที่เพิ่มเข้ามาใน ES7 สามารถเขียนอ้างไฟล์ .js ได้ง่ายๆ ดังนี้ <!-- ไฟล์ index.html-->
<!DOCTYPE html>
<html>
<head>
<!-- Traceur (ใช้เป็นตัว transpiler)-->
<script src="https://google.github.io/traceur-compiler/bin/traceur.js"></script>
<script src="https://google.github.io/traceur-compiler/bin/BrowserSystem.js"></script>
<script src="https://google.github.io/traceur-compiler/src/bootstrap.js"></script>
</head>
<body>
<h1 id="element1"></h1>
<script type="module">
import "./mylib.js"; // อ้างไฟล์ .js
</script>
</body>
</html> หมายเหต วิธีอิมพอร์ตไฟล์ด้วยวิธีนี้ ถ้าไปเปิดดูบน Google Chrome อาจไม่ทำงาน แต่ไม่ต้องซีเรียส เรามีทางแก้ไข แนะนำให้ไปอ่านหัวข้อ [Cross-origin resource sharing (CORS)] (#cross-origin-resource-sharing-cors) Babelต่อไปจะแสดงการเขียนจาวาสคริปต์บนเว็บเบราเซอร์ โดยใช้ Babel ทำตัวเป็น transpiler (ผลการทำงานจะเหมือนตัวอย่างตอนใช้ Traceur ) <!-- ไฟล์ index.html-->
<!DOCTYPE html>
<html>
<head>
<!-- Babel (ใช้เป็นตัว transpiler)-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.14.0/babel.min.js"></script>
</head>
<body>
<h1 id="element1"></h1>
<script type="text/babel"> // ต้องเขียนกำกับ type = "text/babel"
class Chat{ // class ไวยากรณ์ใหม่ของ ES6
constructor(message) { // constructor ไวยากรณ์ใหม่ของ ES6
this.message = message;
}
say(){
let element = document.querySelector('#element1');
element.innerHTML = this.message;
}
}
let chat = new Chat("Hello, world!"); // let ไวยากรณ์ใหม่ของ ES6
chat.say();
// ตัวอย่างโค้ด ES7 ชุดนี้ยังรันได้เฉพาะบน Google Chrome
let array = ["A", "B", "C"]; // let ไวยากรณ์ใหม่ของ ES6
console.log(array.includes("A")); // true -- เมธอดของอาร์เรย์ที่เพิ่มเข้ามาใน ES7
</script>
</body>
</html> จะสมมติว่าบันทึกเป็นไฟล์ index.html โดยมีโครงสร้างโปรเจคดังนี้ C:\ES6>
|-- index.html เมื่อดับเบิลคลิกที่ไฟล์ index.html จะปรากฏตามรูป สังเกตในโค้ดจะต้องระบุ < script type="text/babel" > หรือเขียนเป็น < script type="text/jsx" > ก็ได้เหมือนกัน แต่ถ้าจะเขียนโค้ดจาวาสคริปต์ แยกออกมาเป็นไฟล์ .js เช่น mylib.js ก็สามารถทำได้ โดยจะมีโครงสร้างข้างล่าง (ไฟล์ .js หน้าตาเหมือนตอนใช้ Traceur) C:\ES6>
|-- index.html
|-- mylib.js สามารถเขียนอ้างไฟล์ .js ได้ง่ายๆ ดังนี้ (สังเกตโค้ดดีๆ วิธีอิมพอร์ตไฟล์ .js จะต่างกับ Traceur เล็กน้อย) <!-- ไฟล์
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论