Programming
น้องๆ หลายคนอาจจะเคยได้ยินคำว่า JavaScript กันมาบ้างแล้วใช่มั้ย? มันคือภาษาโปรแกรมมิ่งที่สำคัญมากๆ สำหรับการพัฒนาเว็บไซต์ เพราะมันทำให้เว็บของเราไม่น่าเบื่อ มีลูกเล่นโต้ตอบกับผู้ใช้งานได้ เช่น กดปุ่มแล้วมีอะไรเปลี่ยนแปลง หรือมี animation สวยๆ ให้เห็น
สมัยผมทำร้านเน็ตเมื่อ 20 กว่าปีที่แล้ว JavaScript ก็เริ่มเข้ามามีบทบาทแล้วนะ เว็บไซต์เริ่มมีการใช้พวก popup เล็กๆ น้อยๆ หรือพวกเอฟเฟกต์เวลาเอาเมาส์ไปวางบนรูปภาพ แต่ตอนนั้นยังไม่ได้ซับซ้อนเท่าสมัยนี้หรอก
JavaScript เป็นภาษา scripting ที่ทำงานบน web browser หลักๆ เลยคือทำให้หน้าเว็บ dynamic หรือมีการเปลี่ยนแปลงได้โดยไม่ต้อง reload หน้าใหม่ทั้งหน้า ภาษา HTML และ CSS เป็นเหมือนโครงสร้างและสไตล์ของบ้าน แต่ JavaScript คือเฟอร์นิเจอร์และระบบไฟฟ้าที่ทำให้บ้านน่าอยู่และใช้งานได้จริง
คิดง่ายๆ HTML คือโครงสร้าง, CSS คือการตกแต่ง และ JavaScript คือสมองกลที่ควบคุมทุกอย่าง
ถ้าเว็บไม่มี JavaScript มันก็เหมือนหนังสือที่อ่านได้อย่างเดียว แต่ตอบโต้ไม่ได้ JavaScript ทำให้เว็บ interactive คือผู้ใช้สามารถคลิก เลื่อน พิมพ์ แล้วเว็บตอบสนองได้ทันที นอกจากนี้ JavaScript ยังถูกใช้ในงานอื่นๆ อีกมากมาย เช่น สร้างเกมบนเว็บ สร้างแอปพลิเคชันบนมือถือ หรือแม้แต่พัฒนาโปรแกรมบน server
การเรียนรู้ JavaScript จึงเป็นเหมือนการเปิดประตูสู่โลกของการพัฒนาเว็บและแอปพลิเคชันที่กว้างใหญ่ SiamCafe Blog มีบทความดีๆ เกี่ยวกับการพัฒนาเว็บอีกเยอะ ลองเข้าไปอ่านดูนะ
โชคดีที่การเริ่มต้นเขียน JavaScript ไม่ต้องใช้อะไรมากมาย ขอแค่มี:
แค่นี้ก็เริ่มเขียน JavaScript ได้แล้ว! ไม่ต้องลงโปรแกรมอะไรเพิ่มเติมให้วุ่นวาย
ก่อนจะไปเขียนโปรแกรมเจ๋งๆ เรามาเรียนรู้พื้นฐานที่สำคัญของ JavaScript กันก่อนดีกว่า
Variables คือชื่อที่เราตั้งขึ้นมาเพื่อใช้อ้างอิงถึงข้อมูลต่างๆ ในโปรแกรม เหมือนเป็นกล่องที่เราเอาไว้เก็บของแล้วติดป้ายชื่อไว้ เราสามารถใช้คำสั่ง let, const, หรือ var เพื่อประกาศตัวแปร
let age = 30;
const PI = 3.14;
var name = "John";
let ใช้สำหรับตัวแปรที่ค่าเปลี่ยนแปลงได้ const ใช้สำหรับตัวแปรที่ค่าคงที่ และ var (ถึงจะไม่ค่อยนิยมใช้แล้ว) ก็ใช้สำหรับตัวแปรที่ค่าเปลี่ยนแปลงได้เหมือนกัน
JavaScript มีชนิดข้อมูลพื้นฐานหลายอย่าง เช่น:
การเข้าใจชนิดข้อมูลเหล่านี้จะช่วยให้เราเขียนโปรแกรมได้อย่างถูกต้องและมีประสิทธิภาพ
Operators คือสัญลักษณ์ที่เราใช้ในการคำนวณ เปรียบเทียบ หรือจัดการข้อมูลต่างๆ เช่น:
ตัวอย่างการใช้งาน:
let x = 10;
let y = 5;
console.log(x + y); // Output: 15
console.log(x > y); // Output: true
console.log(x == 10 && y == 5); // Output: true
Control flow คือการกำหนดลำดับการทำงานของโปรแกรม โดยใช้คำสั่ง if, else, for, while
ใช้สำหรับเลือกทำอย่างใดอย่างหนึ่งตามเงื่อนไข
let age = 18;
if (age >= 18) {
console.log("You are an adult.");
} else {
console.log("You are a minor.");
}
ใช้สำหรับทำซ้ำชุดคำสั่งเดิมๆ
for (let i = 0; i < 5; i++) {
console.log(i); // Output: 0 1 2 3 4
}
DOM (Document Object Model) คือโครงสร้างของหน้าเว็บที่ browser สร้างขึ้นมา JavaScript สามารถใช้ DOM API เพื่อเข้าไปแก้ไขเปลี่ยนแปลง HTML ได้ เช่น เปลี่ยนข้อความ เพิ่ม element หรือลบ element
เราสามารถใช้ methods ต่างๆ ของ document object เพื่อเข้าถึง element ในหน้าเว็บได้ เช่น:
document.getElementById(id): เข้าถึง element ที่มี id ตรงกับที่ระบุdocument.querySelector(selector): เข้าถึง element ตัวแรกที่ตรงกับ CSS selector ที่ระบุdocument.querySelectorAll(selector): เข้าถึง element ทั้งหมดที่ตรงกับ CSS selector ที่ระบุตัวอย่าง:
<p id="myParagraph">This is a paragraph.</p>
<script>
let paragraph = document.getElementById("myParagraph");
console.log(paragraph.textContent); // Output: This is a paragraph.
</script>
เมื่อเราเข้าถึง element ได้แล้ว เราสามารถแก้ไข property ต่างๆ ของ element ได้ เช่น textContent, innerHTML, style
<button id="myButton">Click me!</button>
<script>
let button = document.getElementById("myButton");
button.addEventListener("click", function() {
button.textContent = "Clicked!";
button.style.backgroundColor = "red";
});
</script>
Code นี้จะเปลี่ยนข้อความบนปุ่มเป็น "Clicked!" และเปลี่ยนสีพื้นหลังเป็นสีแดง เมื่อผู้ใช้คลิกปุ่ม
| ภาษา | การใช้งานหลัก | ทำงานที่ | ความยากในการเรียนรู้ |
|---|---|---|---|
| JavaScript | พัฒนาเว็บไซต์, แอปพลิเคชัน | Client-side (Browser), Server-side (Node.js) | ปานกลาง |
| Python | Data science, Machine learning, Web development | Server-side | ง่าย |
| Java | Enterprise applications, Android apps | Server-side, Mobile | ปานกลางถึงยาก |
| C++ | Game development, System programming | System level | ยาก |
หวังว่าบทความนี้จะเป็นประโยชน์สำหรับน้องๆ ที่สนใจเริ่มต้นเรียน JavaScript นะครับ SiamCafe Blog ยังมีบทความอื่นๆ อีกมากมายที่น่าสนใจ ลองเข้าไปศึกษาเพิ่มเติมได้เลย!
สมัยผมทำร้านเน็ตฯ ชื่อตัวแปรสำคัญมาก! อย่าตั้งชื่อแบบมักง่าย a, b, c เพราะกลับมาอ่านทีหลัง งงเองแน่นอน ตั้งให้มันบอกว่าเก็บอะไร เช่น customerName, orderTotal จะช่วยชีวิตตอน debug เยอะมาก
Code ที่เขียนวันนี้ อีก 3 เดือนอาจจะอ่านไม่ออกก็ได้ (เรื่องจริง!) Comment ช่วยได้เยอะ เขียนอธิบายว่า code ส่วนนี้ทำอะไร ทำไมถึงทำแบบนี้ คนอื่นมาอ่านก็เข้าใจง่าย (รวมถึงตัวเราเองในอนาคต)
// คำนวณส่วนลดให้ลูกค้า VIP
let discount = calculateDiscount(customerType);
เจอ bug อย่าเพิ่ง panic! ค่อยๆ ไล่ทีละ step ใช้ console.log() ดักค่าตัวแปรต่างๆ ดูว่ามันเป็นไปตามที่เราคิดไหม Debugging คือ skill สำคัญของ programmer ทุกคน ฝึกไว้เยอะๆ
console.log("Customer ID:", customerId);
console.log("Order Total:", orderTotal);
ถ้า code ส่วนไหนที่ต้องใช้ซ้ำๆ กันหลายที่ ให้สร้างเป็น function หรือ class แล้วเรียกใช้เอา อย่า copy paste เด็ดขาด! แก้ไขทีเดียวจะได้มีผลกับทุกที่ ลดโอกาสเกิด bug ได้เยอะ SiamCafe Blog มีตัวอย่างเยอะเลย
JavaScript มันสารพัดประโยชน์มากๆ สมัยผมทำร้านเกมส์ก็ใช้ทำพวก animation เล็กๆ น้อยๆ บนเว็บ ตอนนี้ทำได้ตั้งแต่ frontend, backend, mobile app, game development หรือแม้แต่ AI เลย
มันก็มีช่วงยากบ้างง่ายบ้างแหละ ตอนเริ่มต้นอาจจะงงๆ กับ syntax แต่พอเข้าใจ concept พื้นฐานแล้วก็จะเริ่มสนุก ยิ่งทำโปรเจกต์จริงยิ่งได้เรียนรู้เยอะ
ถ้ามีความรู้พื้นฐาน HTML กับ CSS มาก่อนจะช่วยได้เยอะเลย เพราะ JavaScript มันทำงานร่วมกับพวกนี้ แต่ถ้าไม่มีก็ไม่เป็นไร เริ่มจาก JavaScript เลยก็ได้ เรียนรู้ไปพร้อมๆ กัน
ชื่อคล้ายกัน แต่ไม่เกี่ยวกันเลย! JavaScript คือภาษา scripting ที่ใช้บนเว็บ ส่วน Java เป็นภาษา programming ที่ใช้ทำ application หลากหลายรูปแบบ iCafeForex เคยเขียนบทความเปรียบเทียบไว้อยู่ ลองไปอ่านดูได้
Error message สำคัญมาก! มันบอกใบ้ว่า code เรามีปัญหาตรงไหน Google ช่วยได้เยอะ Copy error message ไป search หาดู มักจะมีคนเคยเจอแล้วมาถามไว้ใน Stack Overflow หรือ forum ต่างๆ
JavaScript เป็นภาษาที่น่าเรียนรู้มากๆ ถึงจะเจอปัญหาบ้าง แต่ก็สนุกและได้อะไรเยอะ อย่าท้อแท้ ฝึกฝนบ่อยๆ เดี๋ยวก็เก่งเอง สมัยผมทำร้านเน็ตฯ ก็เจอปัญหาทุกวันแหละ แต่ก็ผ่านมาได้ด้วยการเรียนรู้และลองผิดลองถูก สู้ๆ!