09: JS Syntax & Variables
เรียนรู้ไวยากรณ์พื้นฐานและตัวแปรใน JavaScript
1. JavaScript คืออะไร
JavaScript (JS) คือภาษาที่ทำให้เว็บ "ทำงานได้" ในคอร์สนี้จะยึดหลักตาม JavaScript (ES6) หากเปรียบเว็บไซต์เป็น การสร้างบ้าน 1 หลัง
HTML
คือ "โครงสร้างบ้าน"
เสาเข็ม, คาน, ผนังปูน, หลังคา (ถ้าไม่มีของพวกนี้ บ้านก็ตั้งอยู่ไม่ได้)CSS
คือ "ตกแต่งภายใน"
ทาสี, ปูกระเบื้อง, ผ้าม่าน, เฟอร์นิเจอร์ (ทำให้บ้านน่าอยู่)JavaScript
คือ "ระบบไฟฟ้า & กลไก"
ไฟเปิด-ปิดอัตโนมัติ, ลิฟต์, กริ่งหน้าบ้าน (สิ่งที่โต้ตอบได้)ES6 (ECMAScript 2015) คือเวอร์ชันอัปเกรดครั้งใหญ่ของ JavaScript ที่ทำให้เขียนโค้ดได้ "ง่ายขึ้น สั้นลง และปลอดภัยขึ้น"
แบบเก่า (ES5)
// 1. สร้างตัวแปร (มีปัญหาเรื่อง Scope)
var name = "Somchai";
// 2. ต่อข้อความ (ยุ่งยาก)
var text = "Hello " + name + "!";
แบบใหม่ (Modern ES6)
// 1. สร้างตัวแปร (ปลอดภัย)
let name = "Somchai";
// 2. ต่อข้อความ (ใช้ Backtick ` )
let text = `Hello ${name}!`;
2. วิธีใส่ JavaScript ลงใน HTML
สามารถเขียนโค้ดภาษา JavaScript ลงไปในโครงสร้างของหน้าเว็บ (HTML) ได้ 2 วิธีหลัก ๆ
วิธีที่ 1: Internal Script
เหมาะกับโค้ดสั้น ๆเขียนแทรกในไฟล์ HTML เลย โดยใช้ tag
<script> (นิยมวางไว้ก่อนปิด </body>)
<body>
<h1>สวัสดี</h1>
<script>
console.log("นี่คือ JavaScript ที่ฝังอยู่ใน HTML");
alert("ยินดีต้อนรับ!");
</script>
</body>
วิธีที่ 2: External Script
แนะนำแยกโค้ดไปไว้ไฟล์ใหม่ (เช่น script.js)
แล้วดึงเข้ามาใช้ เพื่อความเป็นระเบียบ
<body>
<h1>สวัสดี</h1>
<script src="script.js"></script>
</body>
// ไม่ต้องมี tag <script> แล้ว
console.log("นี่คือ Javascript ที่เขียนอยู่ในไฟล์ js");
console.log()
คือคำสั่งพื้นฐานที่สุด เอาไว้ "แอบดูค่าของตัวแปร" การทำงานของโปรแกรม
(แสดงผลเฉพาะคนเขียนโค้ดเห็น ไม่โชว์บนหน้าเว็บจริง)
console.log("Hello Console");
console.log(10 + 20); // ผลลัพธ์ 30 จะไปโผล่ใน Console
3. Variables (ตัวแปร)
ตัวแปรคือ "กล่องเก็บข้อมูล" ใน JavaScript (ES6) จะใช้แค่ let และ const
เท่านั้น!
1. let (กล่องเปิด)
ใช้เก็บค่าที่ "เปลี่ยนแปลงได้" ในอนาคต
let score = 0;
score = 10; // เปลี่ยนค่าได้ ไม่ Error
console.log(score); // 10
2. const (กล่องปิดตาย)
ย่อมาจาก Constant ใช้เก็บค่าที่ "ห้ามเปลี่ยน" ตลอดไป
const pi = 3.14;
pi = 5; // เกิด Error เพราะไม่อนุญาตให้เปลี่ยนค่า
ห้ามใช้ var เด็ดขาด!
var เป็นคำสั่งยุคเก่าที่มีปัญหาเรื่อง Scope (ขอบเขตตัวแปร)
ซึ่งทำให้เกิดข้อผิดพลาดได้ง่าย
4. Data Types (ประเภทของข้อมูล)
| Type | คำอธิบาย | ตัวอย่าง |
|---|---|---|
| String | ข้อความ (ต้องอยู่ใน "" หรือ '') |
let name = "สมชาย"; |
| Number | ตัวเลข (คำนวณได้เลย ไม่ต้องใส่ quote) |
|
| Boolean | ค่าความจริง (มีแค่ True / False) | let isLogin = true; |
| Null | ค่าว่างเปล่า (ว่างแบบตั้งใจให้ว่าง) | let user = null; |
| Undefined | ยังไม่กำหนดค่า (สร้างตัวแปรไว้เฉย ๆ) | let score; (ค่าคือ undefined) |
5. Operators (ตัวดำเนินการ)
นอกจาก บวก ลบ คูณ หาร แล้ว JavaScript ยังมีเครื่องหมายพิเศษ (แบบย่อ) ที่ช่วยให้เขียนโค้ดได้ไวขึ้น
1. Arithmetic (คณิตศาสตร์)
+, -, *,
/ |
บวกลบคูณหารปกติ |
% (Modulo) |
หารเอาเศษ (เช่น 10 % 3 = 1) |
** (Exponent) |
ยกกำลัง (เช่น 2 ** 3 = 8) |
2. Assignment (กำหนดค่าแบบย่อ)
เขียนย่อ ๆ ให้ดูโปรฯ ขึ้น
| แบบเต็ม | แบบย่อ (นิยม) |
|---|---|
x = x + 5 |
x += 5 |
x = x - 1 |
x -= 1 |
x = x + 1 |
x++ (เพิ่มทีละ 1) |
Mini Quiz
let x = 2;
let y = 3;
console.log(x ** y);
let score = 10;
score += 5;
console.log(score % 4);
Programming Challenge
จงเขียนโค้ดแก้โจทย์ปัญหาต่อไปนี้ลงใน Console (กด F12)
โจทย์ที่ 1: เครื่องคิดเงิน
ลูกค้าซื้อของราคา 350 บาท
จ่ายแบงค์ 500 บาทมา
จงเขียนโค้ดเพื่อคำนวณ เงินทอน (change)
คลิกดูเฉลย
let price = 350;
let cash = 500;
let change = cash - price;
console.log(change); // 150
โจทย์ที่ 2: พื้นที่สี่เหลี่ยม
ห้องนอนเป็นรูปสี่เหลี่ยมจัตุรัส
มีความกว้างด้านละ 4 เมตร
จงคำนวณ พื้นที่ (area) ทั้งหมด (สูตร: ด้าน x ด้าน หรือ ด้านยกกำลัง 2)
คลิกดูเฉลย
let side = 4;
// วิธีที่ 1
let area = side * side;
// วิธีที่ 2 (เท่กว่า)
let area2 = side ** 2;
console.log(area); // 16
โจทย์ที่ 3: คู่หรือคี่
มีตัวเลข 15 อยู่ในตัวแปร
อยากรู้ว่าหาร 2 ลงตัวไหม? (เลขคู่/คี่)
จงใช้ Modulo (%) หาเศษที่เหลือ
คลิกดูเฉลย
let num = 15;
let result = num % 2;
console.log(result);
// ได้ 1 แปลว่าเหลือเศษ (เลขคี่)
// ถ้าได้ 0 แปลว่าลงตัว (เลขคู่)
Workshop: BMI Calculator
เขียนโปรแกรมคำนวณดัชนีมวลกาย (BMI) ลงใน Console
โจทย์:
- สร้างตัวแปร
weightเก็บน้ำหนัก (kg) - สร้างตัวแปร
heightเก็บส่วนสูง (cm) - คำนวณ BMI ตามสูตร: น้ำหนัก (kg) / ส่วนสูง (m)2
- แสดงผลลัพธ์ด้วย
console.log()