# สนุกกับฟังก์ชัน ## คำแนะนำ ในงานนี้ คุณจะได้ฝึกสร้างฟังก์ชันประเภทต่าง ๆ เพื่อเสริมสร้างความเข้าใจเกี่ยวกับฟังก์ชันใน JavaScript, พารามิเตอร์, ค่าเริ่มต้น และคำสั่ง return สร้างไฟล์ JavaScript ชื่อ `functions-practice.js` และเขียนฟังก์ชันดังต่อไปนี้: ### ส่วนที่ 1: ฟังก์ชันพื้นฐาน 1. **สร้างฟังก์ชันชื่อ `sayHello`** ที่ไม่มีพารามิเตอร์ และแค่แสดงข้อความ "Hello!" ใน console 2. **สร้างฟังก์ชันชื่อ `introduceYourself`** ที่รับพารามิเตอร์ `name` และแสดงข้อความใน console เช่น "Hi, my name is [name]" ### ส่วนที่ 2: ฟังก์ชันที่มีพารามิเตอร์เริ่มต้น 3. **สร้างฟังก์ชันชื่อ `greetPerson`** ที่รับพารามิเตอร์สองตัว: `name` (จำเป็น) และ `greeting` (ไม่จำเป็น, ค่าเริ่มต้นคือ "Hello") ฟังก์ชันควรแสดงข้อความใน console เช่น "[greeting], [name]!" ### ส่วนที่ 3: ฟังก์ชันที่คืนค่า 4. **สร้างฟังก์ชันชื่อ `addNumbers`** ที่รับพารามิเตอร์สองตัว (`num1` และ `num2`) และคืนค่าผลรวมของตัวเลขทั้งสอง 5. **สร้างฟังก์ชันชื่อ `createFullName`** ที่รับพารามิเตอร์ `firstName` และ `lastName` และคืนค่าชื่อเต็มในรูปแบบข้อความเดียว ### ส่วนที่ 4: ผสมผสานทั้งหมดเข้าด้วยกัน 6. **สร้างฟังก์ชันชื่อ `calculateTip`** ที่รับพารามิเตอร์สองตัว: `billAmount` (จำเป็น) และ `tipPercentage` (ไม่จำเป็น, ค่าเริ่มต้นคือ 15) ฟังก์ชันควรคำนวณและคืนค่าจำนวนเงินทิป ### ส่วนที่ 5: ทดสอบฟังก์ชันของคุณ เพิ่มคำสั่งเรียกใช้ฟังก์ชันเพื่อทดสอบแต่ละฟังก์ชัน และแสดงผลลัพธ์โดยใช้ `console.log()` **ตัวอย่างการเรียกใช้เพื่อทดสอบ:** ```javascript // Test your functions here sayHello(); introduceYourself("Sarah"); greetPerson("Alex"); greetPerson("Maria", "Hi"); const sum = addNumbers(5, 3); console.log(`The sum is: ${sum}`); const fullName = createFullName("John", "Doe"); console.log(`Full name: ${fullName}`); const tip = calculateTip(50); console.log(`Tip for $50 bill: $${tip}`); ``` ## เกณฑ์การประเมิน | เกณฑ์ | ดีเยี่ยม | พอใช้ | ต้องปรับปรุง | | -------- | --------- | -------- | ----------------- | | **การสร้างฟังก์ชัน** | ฟังก์ชันทั้ง 6 ถูกสร้างขึ้นอย่างถูกต้อง พร้อมไวยากรณ์และการตั้งชื่อที่เหมาะสม | ฟังก์ชัน 4-5 ถูกสร้างขึ้นอย่างถูกต้อง มีปัญหาไวยากรณ์เล็กน้อย | สร้างฟังก์ชันน้อยกว่า 3 หรือมีข้อผิดพลาดไวยากรณ์สำคัญ | | **พารามิเตอร์และค่าเริ่มต้น** | ใช้พารามิเตอร์ที่จำเป็น, พารามิเตอร์ที่ไม่จำเป็น และค่าเริ่มต้นได้อย่างถูกต้องตามที่ระบุ | ใช้พารามิเตอร์ได้ถูกต้อง แต่มีปัญหาเกี่ยวกับค่าเริ่มต้น | การใช้งานพารามิเตอร์ไม่ถูกต้องหรือขาดหาย | | **ค่าที่คืนกลับ** | ฟังก์ชันที่ควรคืนค่าทำได้อย่างถูกต้อง และฟังก์ชันที่ไม่ควรคืนค่าทำเพียงแค่การกระทำ | ค่าที่คืนกลับส่วนใหญ่ถูกต้อง มีปัญหาเล็กน้อย | มีปัญหาสำคัญเกี่ยวกับคำสั่ง return | | **คุณภาพของโค้ด** | โค้ดสะอาดและจัดระเบียบดี พร้อมชื่อตัวแปรที่มีความหมายและการจัดวางที่เหมาะสม | โค้ดทำงานได้ แต่ควรปรับปรุงให้สะอาดหรือจัดระเบียบมากขึ้น | โค้ดอ่านยากหรือจัดโครงสร้างไม่ดี | | **การทดสอบ** | ฟังก์ชันทั้งหมดถูกทดสอบด้วยคำสั่งเรียกใช้ที่เหมาะสม และผลลัพธ์แสดงอย่างชัดเจน | ฟังก์ชันส่วนใหญ่ถูกทดสอบอย่างเพียงพอ | การทดสอบฟังก์ชันมีข้อจำกัดหรือไม่ถูกต้อง | ## ความท้าทายเพิ่มเติม (ไม่บังคับ) หากคุณต้องการท้าทายตัวเองเพิ่มเติม: 1. **สร้างเวอร์ชันฟังก์ชันแบบลูกศร** ของหนึ่งในฟังก์ชันของคุณ 2. **สร้างฟังก์ชันที่รับฟังก์ชันอื่นเป็นพารามิเตอร์** (เช่นตัวอย่าง `setTimeout` จากบทเรียน) 3. **เพิ่มการตรวจสอบข้อมูลนำเข้า** เพื่อให้ฟังก์ชันของคุณจัดการกับข้อมูลนำเข้าที่ไม่ถูกต้องได้อย่างเหมาะสม --- > 💡 **เคล็ดลับ**: อย่าลืมเปิด console ของนักพัฒนาในเบราว์เซอร์ของคุณ (F12) เพื่อดูผลลัพธ์ของคำสั่ง `console.log()` ของคุณ! --- **ข้อจำกัดความรับผิดชอบ**: เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้