JavaScript นิดเดียว
คุณได้เรียนรู้แล้วว่า HTML คือโครงกระดูกของเนื้อหา และ CSS คือดีไซน์ภาพ ยังมีอีกหนึ่งชั้นที่รอคุณอยู่นั่นคือ JavaScript บทเรียนนี้จะพาคุณเข้าสู่โลกของ JavaScript อย่างนุ่มนวล คุณจะไม่กลายเป็น developer ในวันนี้ แต่คุณจะเข้าใจว่า JavaScript ทำอะไร ทำไมถึงสำคัญ และแม้แต่ JavaScript แค่นิดเดียวก็ทำให้หน้าเว็บมีชีวิตขึ้นได้อย่างไร
คิดเหมือน Figma Prototype
หัวข้อที่มีชื่อว่า “คิดเหมือน Figma Prototype”ใน Figma ตอนที่คุณออกแบบ frame แบบ static frame นั้นก็แค่แสดงให้เห็นว่าหน้าตาจะเป็นอย่างไร แต่พอคุณเพิ่ม prototype เข้าไป ดีไซน์ก็เริ่ม “ทำงาน” ได้ — คลิกปุ่มแล้วไปหน้าถัดไป เอาเมาส์ชี้แล้วไฮไลต์ component แตะเมนูแล้ว drawer เปิดออก ชั้น prototype นั้นแหละคือบทบาทที่ JavaScript ทำบนเว็บพอดีเลย
| ชั้น | เทียบกับ Figma | หน้าที่ |
|---|---|---|
| HTML | แผง Frames และ Layers | กำหนดเนื้อหาและโครงสร้าง |
| CSS | Styles และ Design tokens | ควบคุมสี ฟอนต์ ระยะห่าง และ layout |
| JavaScript | Prototype interactions | เพิ่มพฤติกรรมและอินเตอร์แอ็กชัน |
แม้ไม่มี JavaScript หน้าเว็บก็ยังใช้งานได้จริงและสมบูรณ์ — เหมือนกับ mockup ที่ออกแบบมาสวยงามแต่ยังเป็น static อยู่ JavaScript คือสิ่งที่ มีก็ดี แต่ทรงพลังมาก
ไม่จำเป็นต้องเขียนเอง — แต่เข้าใจแล้วช่วยได้มาก
หัวข้อที่มีชื่อว่า “ไม่จำเป็นต้องเขียนเอง — แต่เข้าใจแล้วช่วยได้มาก”ดีไซเนอร์ที่เข้าใจ JavaScript แม้นิดเดียวสามารถ:
- สื่อสารกับ developer ได้ชัดขึ้นว่าอินเตอร์แอ็กชันนี้ควรทำงานอย่างไร
- อ่าน code ที่มีอยู่แล้วรู้ว่า behavior นั้นพยายามทำอะไร
- รู้ว่าอะไรสร้างได้ง่ายและอะไรต้องใช้ความพยายามมาก
- สร้าง prototype ที่มีอินเตอร์แอ็กชันเบา ๆ ใน tool บน browser อย่าง CodePen หรือ StackBlitz ได้
ไม่มีสิ่งใดที่กล่าวมาต้องการให้คุณเขียน production code เลยสักบรรทัด แค่รู้บ้างนิดหน่อยก็ช่วยได้มากแล้ว
อินเตอร์แอ็กชันแรกของคุณ: ปุ่มที่เปลี่ยนข้อความ
หัวข้อที่มีชื่อว่า “อินเตอร์แอ็กชันแรกของคุณ: ปุ่มที่เปลี่ยนข้อความ”ตัวอย่างด้านล่างนี้เรียบง่ายที่สุดเท่าที่จะทำได้ มีปุ่มอยู่ปุ่มหนึ่ง เมื่อคุณคลิก ข้อความหนึ่งบรรทัดจะเปลี่ยนไป แค่นั้นเอง ลองดูเลย — กดปุ่มได้เลย
สามบรรทัดนั้นทำงานอย่างไร?
หัวข้อที่มีชื่อว่า “สามบรรทัดนั้นทำงานอย่างไร?”นี่คือคำอธิบาย JavaScript แต่ละส่วนในภาษาที่เข้าใจง่าย:
document.querySelector('#myBtn')— “ค้นหา element บนหน้าเว็บที่มี id ว่าmyBtn” คิดเหมือนการเลือก layer ตามชื่อใน FigmaaddEventListener('click', function() { ... })— “เมื่อมีคนคลิก element นั้น ให้รันคำสั่งที่อยู่ในวงเล็บปีกกา” นี่คือ prototype trigger นั่นเองmsg.textContent = 'JavaScript just changed this!'— “เปลี่ยนข้อความที่แสดงอยู่ใน elementmsgให้เป็น string ใหม่นี้” หน้าเว็บอัปเดตทันทีโดยไม่ต้อง reload
นั่นคือ mental model ทั้งหมดสำหรับอินเตอร์แอ็กชันง่าย ๆ ส่วนใหญ่: ค้นหาสิ่งที่ต้องการ รอฟัง event แล้วทำบางอย่างเมื่อ event นั้นเกิดขึ้น
JavaScript อยู่เคียงข้าง HTML และ CSS
หัวข้อที่มีชื่อว่า “JavaScript อยู่เคียงข้าง HTML และ CSS”เหมือนกับที่ CSS อยู่ใน tag <style> หรือไฟล์ .css แยกต่างหาก JavaScript อยู่ใน tag <script> หรือไฟล์ .js แยกต่างหาก ในโปรเจกต์จริงไฟล์ทั้งสามทำงานร่วมกัน:
index.html— โครงกระดูกstyles.css— รูปลักษณ์script.js— พฤติกรรม
browser โหลดทั้งสามไฟล์และประกอบเป็นประสบการณ์สุดท้าย การเปลี่ยนไฟล์ใดไฟล์หนึ่งก็เปลี่ยนบางอย่างบนหน้าเว็บ
ต่อจากนี้ไป
หัวข้อที่มีชื่อว่า “ต่อจากนี้ไป”บทเรียนนี้จะพาคุณผ่านแนวคิดหลัก ๆ ทีละขั้นตอนเล็ก ๆ — ตัวแปร เงื่อนไข ลูป และการทำงานกับหน้าเว็บ ทุกแนวคิดจะเชื่อมโยงกับสิ่งที่มองเห็นได้ และทุกตัวอย่างจะแก้ไขได้ ค่อย ๆ เรียนตามจังหวะของตัวเอง ไม่มีกำหนดเวลา และไม่มีอะไรพังถ้าคุณลองผิดลองถูก