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/km/2-js-basics/2-functions-methods/assignment.md

73 lines
9.0 KiB

# រីករាយជាមួយមុខងារ
## សេចក្តីណែនាំ
ក្នុងការងារនេះ អ្នកនឹងអនុវត្តបង្កើតមុខងារប្រភេទផ្សេងៗ ដើម្បីរឹតបន្ថែមយល់ដឹងអំពីមុខងារ JavaScript, ប៉ារ៉ាម៉ែត្រ, តម្លៃលំនាំដើម និងការបញ្ជូនតម្លៃត្រឡប់។
បង្កើតឯកសារ JavaScript មួយឈ្មោះ `functions-practice.js` ហើយអនុវត្តមុខងារដូចខាងក្រោម៖
### ផ្នែកទី 1: មុខងារមូលដ្ឋាន
1. **បង្កើតមុខងារដែលមានឈ្មោះ `sayHello`** ដែលមិនទទួលប៉ារ៉ាម៉ែត្រណាមួយ និងបង្ហាញ "Hello!" ទៅកុងសូល។
2. **បង្កើតមុខងារដែលមានឈ្មោះ `introduceYourself`** ដែលទទួលប៉ារ៉ាម៉ែត្រឈ្មោះ `name` ហើយបង្ហាញសារដូចជា "Hi, my name is [name]" ទៅកុងសូល។
### ផ្នែកទី 2: មុខងារដោយមានប៉ារ៉ាម៉ែត្រលំនាំដើម
3. **បង្កើតមុខងារដែលមានឈ្មោះ `greetPerson`** ដែលទទួលប៉ារ៉ាម៉ែត្រ ២: `name` (បង្ហាញបណ្ដាចាំបាច់) និង `greeting` (ជាជម្រើស, តម្លៃលំនាំដើម = "Hello")។ មុខងារនេះគួរបង្ហាញសារដូចជា "[greeting], [name]!" ទៅកុងសូល។
### ផ្នែកទី 3: មុខងារដែលត្រឡប់តម្លៃ
4. **បង្កើតមុខងារដែលមានឈ្មោះ `addNumbers`** ដែលទទួលប៉ារ៉ាម៉ែត្រ ២ (`num1` និង `num2`) ហើយត្រឡប់តម្លៃសរុបរបស់ពួកវា។
5. **បង្កើតមុខងារដែលមានឈ្មោះ `createFullName`** ដែលទទួលប៉ារ៉ាម៉ែត្រ `firstName` និង `lastName` ហើយត្រឡប់តម្លៃឈ្មោះពេញជា string តែមួយ។
### ផ្នែកទី 4: លាយបញ្ចូលគ្នា
6. **បង្កើតមុខងារដែលមានឈ្មោះ `calculateTip`** ដែលទទួលប៉ារ៉ាម៉ែត្រ ២: `billAmount` (បង្ហាញបណ្ដាចាំបាច់) និង `tipPercentage` (ជាជម្រើស, តម្លៃលំនាំដើម = 15)។ មុខងារនេះគួរគណនានិងត្រឡប់តម្លៃថ្លៃចំនេញ។
### ផ្នែកទី 5: សាកល្បងមុខងារ
បន្ថែមការហៅមុខងារដើម្បីសាកល្បងមុខងារនីមួយៗ និងបង្ហាញលទ្ធផលដោយប្រើ `console.log()`
**ឧទាហរណ៍ការហៅសាកល្បង៖**
```javascript
// សាកល្បង​ឧបករណ៍​របស់​អ្នក​នៅទីនេះ
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 ឬតិចជាងនេះ ឬក៏មានកំហុសសញ្ញាផ្នែកធំនា |
| **ប៉ារ៉ាម៉ែត្រ និងតម្លៃលំនាំដើម** | ប្រើប៉ារ៉ាម៉ែត្របំពេញចាំបាច់, ជាជម្រើស និងតម្លៃលំនាំដើមត្រឹមត្រូវ | ប្រើប៉ារ៉ាម៉ែត្រត្រឹមត្រូវ ប៉ុន្តែអាចមានបញ្ហា តម្លៃលំនាំដើម | ការអនុវត្តប៉ារ៉ាម៉ែត្រមិនត្រឹមត្រូវ ឬខ្វះ |
| **តម្លៃត្រឡប់** | មុខងារដែលត្រូវត្រឡប់តម្លៃធ្វើបានត្រឹមត្រូវ ហើយមុខងារដែលមិនត្រូវត្រឡប់តម្លៃទេធ្វើតែមុខងារប៉ុណ្ណោះ | តម្លៃត្រឡប់ភាគច្រើនត្រឹមត្រូវ មានបញ្ហាបន្តិច | មានបញ្ហាធ្ងន់ធ្ងរជាមួយការបញ្ជូនតម្លៃត្រឡប់ |
| **គុណភាពកូដ** | កូដស្អាត មានរបៀបវិញ្ញាបនបត្រល្អ ឈ្មោះអថេរមានន័យ និងចំណុចដាក់សញ្ញាអក្សរសព្ទត្រឹមត្រូវ | កូដដំណើរការ តែក៏អាចស្អាត ឬរៀបចំប្រសើរជាងនេះ | កូដអានលំបាក ឬរៀបចំខុសគ្នា |
| **ការសាកល្បង** | មុខងារ ទាំងអស់បានសាកល្បងដោយការហៅមុខងារដោយសមរម្យ និងបង្ហាញលទ្ធផលយ៉ាងច្បាស់ | មុខងារច្រើនបានសាកល្បងយ៉ាងសមរម្យ | ការសាកល្បងមានកំណត់ ឬមិនត្រឹមត្រូវ |
## បញ្ហាបន្ថែម (ជាជម្រើស)
បើអ្នកចង់បញ្ចេញតម្រូវខ្លួនខាងមុខទៀត៖
1. **បង្កើតមុខងារ arrow function មួយនៃមុខងាររបស់អ្នក**
2. **បង្កើតមុខងារមួយដែលទទួលមុខងារផ្សេងទៀតជាប៉ារ៉ាម៉ែត្រ** (ដូចឧទាហរណ៍ setTimeout ពីមេរៀន)
3. **បន្ថែមការត្រួតពិនិត្យបញ្ចូល** ដើម្បីធានាថាមុខងាររបស់អ្នកដំណើរការជាប្រក្រតីនៅពេលបញ្ចូលខុសប្រក្រតី
---
> 💡 **គន្លឹះ**៖ សូមចងចាំបើកកុងសូលអ្នកអភិវឌ្ឍន៍របស់កម្មវិធីរុករក (F12) ដើម្បីមើលលទ្ធផលការបង្ហោះ `console.log()` របស់អ្នក!
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**ការបដិសេធ**៖
ឯកសារនេះបានបម្លែងភាសាដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះបីយើងខិតខំរកកំហុសឲ្យតិចបំផុតក៏ដោយ សូមយល់ដឹងថាការបកប្រែដោយស្វយ័តអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសាដើមគួរត្រូវបានទទួលស្គាល់ថាជាផ្នែកមានសុទ្ឋិភាពខ្ពស់បំផុត។ សម្រាប់ព័ត៌មានសំខាន់ៗ ត្រូវបានផ្ដល់អនុសាសន៍ឲ្យបកប្រែដោយមនុស្សយ៉ាងម៉ត់ចត់វិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការ​យល់ច្រឡំ ឬការ​បកប្រែ​កំហុសណាមួយ​ដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។
<!-- CO-OP TRANSLATOR DISCLAIMER END -->