You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/th/2-js-basics/2-functions-methods/assignment.md

80 lines
8.9 KiB

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "8328f58f4593b4671656ff8f4b2edbd9",
"translation_date": "2025-10-23T20:43:58+00:00",
"source_file": "2-js-basics/2-functions-methods/assignment.md",
"language_code": "th"
}
-->
# สนุกกับฟังก์ชัน
## คำแนะนำ
ในงานนี้ คุณจะได้ฝึกสร้างฟังก์ชันประเภทต่าง ๆ เพื่อเสริมสร้างความเข้าใจเกี่ยวกับฟังก์ชันใน 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) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้