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
localizeflow[bot] 388926566b
chore(i18n): sync translations with latest source changes (chunk 1/1, 243 changes)
6 months ago
..
README.md chore(i18n): sync translations with latest source changes (chunk 1/1, 243 changes) 6 months ago
assignment.md chore(i18n): sync translations with latest source changes (chunk 1/1, 243 changes) 6 months ago

README.md

មូលដ្ឋាន JavaScript៖ វិធីសាស្រ្ត និង פונקציות

មូលដ្ឋាន JavaScript - פונקציות

សេចក្ដីសង្ខេបដោយ Tomomi Imura

journey
    title ស្មារតីដំណើរការលក្ខណៈ JavaScript របស់អ្នក
    section មូលដ្ឋាន
      Function Syntax: 5: You
      Calling Functions: 4: You
      Parameters & Arguments: 5: You
    section គំនិតធំទូលាយ
      Return Values: 4: You
      Default Parameters: 5: You
      Function Composition: 4: You
    section JavaScript ទំនើប
      Arrow Functions: 5: You
      Anonymous Functions: 4: You
      Higher-Order Functions: 5: You

សំណួរប្រឡងមុនវគ្គសិក្សា

សំណួរប្រឡងមុនវគ្គសិក្សា

ការសរសេរកូដដដែលៗជូនគ្នាជាច្រើនជាផ្នែកមួយនៃការសង្ស័យដែលកើតមានជានិច្ចក្នុងកម្មវិធីកម្មវិធី។ פונקציות ធ្វើអោយបញ្ហានេះជាស្រេចដោយអនុញ្ញាតឱ្យអ្នកកញ្ចប់កូដទៅជាដុំដែលអាចប្រើឡើងវិញ។ គិតពី פונקציותដូចជា ផ្នែកត្រៀមរួចដែលធ្វើឱ្យបន្ទាត់ប្រមូលផ្តុំរបស់ Henry Ford ក្លាយទៅជាគន្លងប្លែក – ពេលដែលអ្នកបង្កើតធាតុប្រតិបត្តិការដែលទុកចិត្តបាន អ្នកអាចប្រើវាក្នុងកន្លែងណាមួយដែលត្រូវការ ដោយមិនចាំបាច់សង់ឡើងវិញពីដើម។

פונקציות អនុញ្ញាតឱ្យអ្នកកញ្ចប់ផ្នែកនៃកូដ ដើម្បីអ្នកអាចប្រើឡើងវិញនៅក្នុងកម្មវិធីរបស់អ្នក។ ជំនួសការចម្លងនិងភ្ជាប់លក្ខណៈដូចគ្នាតាមគ្រប់កន្លែង អ្នកអាចបង្កើត פונקציה មួយដងហើយហៅវាតាមពេលត្រូវការ។ វិធីនេះរក្សាកូដរបស់អ្នកឲ្យមានភាពស្វាក់ស្វាញ និងធ្វើឲ្យការអាប់ដេតកូដកាន់តែងាយស្រួល។

នៅក្នុងមេរៀននេះ អ្នកនឹងរៀនពីរបៀបបង្កើត פונקציות រួមបញ្ចូលការផ្ញើព័ត៌មានទៅកាន់ពួកវា ហើយទទួលបានលទ្ធផលដែលមានប្រយោជន៍ត្រឡប់មកវិញ។ អ្នកនឹងរកឃើញភាពខុសគ្នារវាង פונקציות និងវិធីសាស្រ្ត។ អ្នកនឹងរៀនពីស្ទីលនៃសំណុំសន្ទស្សន៍ទំនើប និងមើលវិធីដែល פונקציות អាចធ្វើការជាមួយ פונקציותផ្សេងទៀត។ យើងនឹងបង្កើតគំនិតទាំងនេះជាជំហានៗ។

វិធីសាស្រ្ត និង פונקציות

🎥 ចុចរូបភាពខាងលើសម្រាប់វីដេអូអំពីវិធីសាស្រ្ត និង פונקציות។

អ្នកអាចយកមេរៀននេះនៅលើ Microsoft Learn!

mindmap
  root((JavaScript Functions))
    Basic Concepts
      Declaration
        Traditional syntax
        Arrow function syntax
      Calling
        Using parentheses
        Parentheses required
    Parameters
      Input Values
        ប៉ារ៉ាម៉ែត្រច្រើន
        តម្លៃលំនាំដើម
      Arguments
        តម្លៃបានបញ្ជូនចូល
        អាចជា​ប្រភេទណាមួយ
    Return Values
      Output Data
        សេចក្តីថ្លែងការណ៍ return
        ចាកចេញពីមុខងារ
      Use Results
        រក្សាទុកក្នុងអថេរ
        ខ្សែក្រវាត់មុខងារ
    Advanced Patterns
      Higher-Order
        មុខងារជាប៉ារម៉ែត្រ
        Callbacks
      Anonymous
        មិនត្រូវការឈ្មោះ
        ការបញ្ជាក់មើលបន្ទាត់ភាសា

פונקציות

פונקציה គឺជាដុំកូដដែលមានមុខងារផ្សេងៗដោយខ្លួនឯង។ វាអាចផ្លាស់ប្តូរលក្ខណៈដែលអ្នកអាចរត់កំណត់ពេលណាមួយបាន។

ជំនួសការសរសេរកូដដូចគ្នាជារយៈពេលជាច្រើន នៅក្នុងកម្មវិធីរបស់អ្នក អ្នកអាចកញ្ចប់វាទៅក្នុង פונקציה ហើយហៅ פונקציהនោះនៅពេលដែលអ្នកត្រូវការ វិធីនេះរក្សាកូដរបស់អ្នកឲ្យស្អាត និងធ្វើឲ្យការអាប់ដេតកូដកាន់តែងាយស្រួល។ គិតពីបញ្ហាការជួសជុល ប្រសិនបើអ្នកត្រូវប្ដូរឡូវយ៉ាងដែលត្រូវបាក់បែកនៅលើទីតាំងផ្សេងៗ ២០ កន្លែងក្នុងបណ្ណាល័យកូដរបស់អ្នក។

ការផ្ដល់ឈ្មោះមួយដ៏ច្បាស់លាស់ដល់ פונקציות របស់អ្នកគឺចាំបាច់ណាស់។ פונקציה ដែលមានឈ្មោះល្អនឹងធ្វើឱ្យអ្នកយល់ពីគោលបំណងរបស់វាប្រកបដោយច្បាស់លាស់ – ពេលដែលអ្នកឃើញ cancelTimer() អ្នកភ្លាមៗយល់ថាវាធ្វើអ្វី ដូចដើមដែលប៊ូតុងដែលមានស្លាកច្បាស់លាស់ប្រាប់អ្នកយ៉ាងច្បាស់ពីអ្វីដែលនឹងកើតឡើងពេលអ្នកចុចវា។

ការបង្កើត និងហៅ פונקציה

មកមើលរបៀបបង្កើត פונקציה។ វាកាត់តាមលំនាំដូចគ្នា៖

function nameOfFunction() { // ការកំណត់ហៅ​មុខងារ
 // ការកំណត់/រាងកាយមុខងារ
}

ចែកចាយរឿងនេះ៖

  • ពាក្យគន្លឹះ function ប្រាប់ JavaScript ថា "សួស្ដី, ខ្ញុំកំពុងបង្កើត פונקציה!"
  • nameOfFunction គឺជាទីតាំងដែលអ្នកផ្ដល់ឈ្មោះបរិយាយសម្រាប់ פונקציה របស់អ្នក
  • បុគ្គលិក () ជាទីតាំងដែលអ្នកអាចបញ្ចូលប៉ារ៉ាម៉ែត្រ (យើងនឹងអស់ពេលចាប់ផ្ដើមលើនេះ)
  • គូក {} មានកូដពិតប្រាកដដែលរត់ពេលដែលអ្នកហៅ פונקציה

មកបង្កើត פונקציהស្វាគមន៍សាមញ្ញមួយដើម្បីឲ្យមើលសកម្មភាពនេះ៖

function displayGreeting() {
  console.log('Hello, world!');
}

פונקציהនេះបោះពុម្ព "Hello, world!" ទៅកាន់កុងសូល។ ពេលអ្នកបានកំណត់វា អ្នកអាចប្រើវាច្រើនដងតាមតម្រូវការ។

ដើម្បីអនុវត្ត (ឬ "ហៅ") פונקציה របស់អ្នក សរសេរឈ្មោះរបស់វាតាមបន្ទាប់ដោយបុគ្គលិក។ JavaScript អាចអនុញ្ញាតឱ្យអ្នកកំណត់ פונקציה មុន ឬក្រោយពេលហៅវា – ឧបករណ៍ JavaScript នឹងដោះស្រាយបញ្ហាលំដាប់អនុវត្តន៍។

// កំពុងហៅមុខងាររបស់យើង
displayGreeting();

ពេលអ្នករត់បន្ទាត់នេះ វានឹងអនុវត្តកូដទាំងអស់នៅក្នុង פונקציה displayGreeting របស់អ្នក បង្ហាញ "Hello, world!" នៅក្នុងកុងសូលរបស់កម្មវិធីរុករករបស់អ្នក។ អ្នកអាចហៅ פונकציהនេះម្តងហើយម្តងទៀត។

🧠 ត្រួតពិនិត្យមូលធន פונקציה៖ កែលម្អ פונקציהដំបូងរបស់អ្នក

ឲ្យយើងមើលថាតើអ្នកមានអារម្មណ៍យ៉ាងដូចម្តេចចំពោះ פונקציהមូលដ្ឋាន៖

  • អ្នកអាចពន្យល់ថាហេតុអ្វីយើងប្រើគូក {} នៅក្នុងការកំណត់ פונקציה?
  • តើអ្វីកើតឡើងប្រសិនបើអ្នកសរសេរ displayGreeting ដោយគ្មានគូក?
  • ហេតុអ្វីបានជា អ្នកចង់ហៅ פונקציהដដែលជាច្រើនដង?
flowchart TD
    A["✏️ កំណត់អង្គភាព"] --> B["📦 កញ្ចប់កូដ"]
    B --> C["🏷️ ផ្ដល់ឈ្មោះ"]
    C --> D["📞 ហៅពេលចាំបាច់"]
    D --> E["🔄 វិញជាថ្មីនៅគេចន្លោះណា"]
    
    F["💡 អត្ថប្រយោជន៍"] --> F1["គ្មានកូដម្តងទៀត"]
    F --> F2["ងាយក្នុងការថែទាំ"]
    F --> F3["រៀបចំច្បាស់លាស់"]
    F --> F4["ងាយស្រួលសាកល្បង"]
    
    style A fill:#e3f2fd
    style E fill:#e8f5e8
    style F fill:#fff3e0

หมายเหตุ: អ្នកបានប្រើ វិធីសាស្រ្ត នៅក្នុងមេរៀនទាំងនេះ។ console.log() គឺជាវិធីសាស្រ្ត – ជា פונקציהមួយសម្រាប់អង្គធាតុ console។ ភាពខុសគ្នាសំខាន់គឺ វិធីសាស្រ្តភ្ជាប់ទៅអង្គធាតុ ខណៈដែល פונקציות ឈរពេលខ្លួនឯង។ អ្នកអភិវឌ្ឍជាច្រើនប្រើពាក្យទាំងនេះបង្វិលក្នុងការជជែករឺអាការៈធម្មតា។

នីតិវិធីល្អសម្រាប់ פונקציות

នេះជាគន្លឹះពីរបៀបជួយអ្នកសរសេរ פונקציותល្អ៖

  • ផ្ដល់ឈ្មោះច្បាស់លាស់និងអធិប្បាយចំពោះ פונקציות – អ្នកនៅពេលអនាគតនឹងអរគុណអ្នក!
  • ប្រើ camelCasing សម្រាប់ឈ្មោះពាក្យច្រើន (ដូចជា calculateTotal ជំនួស calculate_total)
  • រក្សា פונקציה នីតិវិធីមួយផ្ដោតលើរឿងមួយឲ្យយ៉ាងល្អ

ផ្ញើព័ត៌មានទៅ פונקציה

פונקציה displayGreeting របស់យើងមានកំណត់ – វាអាចបង្ហាញបានត្រឹមតែ "Hello, world!" សម្រាប់គ្រប់គ្នា។ ប៉ារ៉ាម៉ែត្រ អនុញ្ញាតិឱ្យយើងធ្វើឲ្យ פונקציות មានភាពបត់បែននិងមានប្រយោជន៍។

ប៉ារ៉ាម៉ែត្រ ដូចជាតំណាងកន្លែងដែលអ្នកអាចបញ្ចូលតម្លៃផ្សេងៗគ្នា រៀងរាល់ពេលដែលអ្នកប្រើ פונקציה។ ម៉្យាងវិញ, פונקציהដដែល អាចធ្វើការជាមួយព័ត៌មានផ្សេងៗគ្នា ក្នុងម្តងហៅម្តង។

អ្នករាយប៉ារ៉ាម៉ែត្រ ក្នុងបុគ្គលិកនៅពេលដែលអ្នកកំណត់ פונקציה របស់អ្នក ដោយបំបែកប៉ារ៉ាម៉ែត្រច្រើនជាក្បៀស:

function name(param, param2, param3) {

}

ប៉ារ៉ាម៉ែត្រ​​​មួយៗដូចជាតំណាងកន្លែង – ពេលដែលនរណាម្នាក់ហៅ פונקציה របស់អ្នក ពួកគេនឹងផ្តល់តម្លៃពិតដែលដាក់ចូលក្រៅកន្លែងទាំងនេះ។

មកផ្លាស់ប្តូរប פונקציהស្វាគមន៍ របស់យើង ដោយទទួលឈ្មោះរបស់អ្នកណាម្នាក់៖

function displayGreeting(name) {
  const message = `Hello, ${name}!`;
  console.log(message);
}

ហើយសូមសង្កេតថាយើងកំពុងប្រើ backticks (`) និង ${} ដើម្បីបញ្ចូលឈ្មោះចូលទៅក្នុងសារ ព្រមទាំងច្រើនគឺហៅថា template literal និងវាជាវិធីពិតជាសម្បូរបែបក្នុងការបង្កើតខ្សែអក្សរដោយមានអថេរចំរូងក្នុង។

ឥឡូវនេះ ពេលហៅ פונקציה អ្នកអាចផ្ញើឈ្មោះណាមួយ:

displayGreeting('Christopher');
// បង្ហាញ "សួស្ដី Christopher!" ពេលរត់

JavaScript ទទួល string 'Christopher' កំណត់ទៅប៉ារ៉ាម៉ែត្រ name ហើយបង្កើតសារផ្ទាល់ខ្លួនថា "Hello, Christopher!"

flowchart LR
    A["🎯 ការហៅមុខងារ"] --> B["📥 ប៉ារ៉ាម៉ែត្រ"]
    B --> C["⚙️ សារជំរុញមុខងារ"]
    C --> D["📤 លទ្ធផល"]
    
    A1["displayGreeting('អាលីស')"] --> A
    B1["name = 'អាលីស'"] --> B
    C1["អក្សរគំរូ\n\`សួស្តី, \${name}!\`"] --> C
    D1["'សួស្តី, អាលីស!'"] --> D
    
    E["🔄 ប្រភេទប៉ារ៉ាម៉ែត្រ"] --> E1["អត្ថសញ្ញា"]
    E --> E2["លេខ"]
    E --> E3["ប៊ូលីយ៉ាន់"]
    E --> E4["វត្ថុ"]
    E --> E5["មុខងារ"]
    
    style A fill:#e3f2fd
    style C fill:#e8f5e8
    style D fill:#fff3e0
    style E fill:#f3e5f5

តម្លៃផ្ទាល់ខ្លួនដើម

តើយើងចង់អោយប៉ារ៉ាម៉ែត្រមួយចំនួនជាជម្រើសផងដែរ? នោះគឺជាពេលតម្លៃផ្ទាល់ខ្លួនដើមចូលមកចលនា។

假设 យើងចង់អោយមនុស្សអាចប្តូរពាក្យស្វាគមន៍បាន ប៉ុន្តែប្រសិនបើពួកគេចង់មិនបញ្ជាក់យ៉ាងណា យើងនឹងប្រើអក្ខរកម្ម "Hello" ជាការទម្លាប់។ អ្នកអាចកំណត់តម្លៃផ្ទាល់ខ្លួនដើមដោយប្រើសញ្ញាស្មើ = ដូចជាការកំណត់អថេរ។

function displayGreeting(name, salutation='Hello') {
  console.log(`${salutation}, ${name}`);
}

នៅទីនេះ name ត្រូវការចាំបាច់ ប៉ុន្តែ salutation មានតម្លៃផ្ទាល់ខ្លួនជា 'Hello' ប្រសិនបើគ្មានអ្នកណាបញ្ជាក់សំណួរដទៃទៀត។

ឥឡូវ អ្នកអាចហៅ פונקציהនេះប្រើពីរបែបផ្សេងគ្នា៖

displayGreeting('Christopher');
// បង្ហាញ "Hello, Christopher"

displayGreeting('Christopher', 'Hi');
// បង្ហាញ "Hi, Christopher"

ក្នុងការហៅដំបូង JavaScript ប្រើ "Hello" ជាលំនាំដើម ពីព្រោះយើងមិនបានបញ្ជាក់ពាក្យស្វាគមន៍ណាមួយទេ។ លើកទី២ វាប្រើ "Hi" ដែលយើងកំណត់ផ្ទាល់ខ្លួនវិញ។ ភាពបត់បែននេះធ្វើឲ្យ פונקציות មានភាពអាចបត់បែនទៅតាមស្ថានភាពផ្សេងៗ។

🎛️ ត្រួតពិនិត្យជំនាញប៉ារ៉ាម៉ែត្រ៖ ធ្វើឲ្យ פונקציות មានភាពបត់បែន

សាកល្បងការយល់ដឹងរបស់អ្នកអំពីប៉ារ៉ាម៉ែត្រ៖

  • តើប៉ារ៉ាម៉ែត្រ និងអាគុយម៉ង់ខុសគ្នាដូចម្តេច?
  • ហេតុអ្វីបានជា តម្លៃផ្ទាល់ខ្លួនដើមមានប្រយោជន៍ក្នុងកម្មវិធីពិតប្រាកដ?
  • អ្នកអាចទស្សនាបានទេថាអ្វីកើតឡើង ប្រសិនបើអ្នកផ្ញើអាគុយម៉ង់ច្រើនជាងប៉ារ៉ាម៉ែត្រមួយ?
stateDiagram-v2
    [*] --> NoParams: function greet() {}
    [*] --> WithParams: function greet(name) {}
    [*] --> WithDefaults: function greet(name, greeting='Hi') {}
    
    NoParams --> Static: លទ្ធផលដដែលទាំងអស់
    WithParams --> Dynamic: ផ្លាស់ប្តូរតាមបញ្ចូល
    WithDefaults --> Flexible: ប្តូរតំរូវអោយបត់បែនបាន
    
    Static --> [*]
    Dynamic --> [*]
    Flexible --> [*]
    
    note right of WithDefaults
        វិធានការបត់បែនភាគច្រើន
        សុទ្ធតែត្រូវជា backwards compatible
    end note

គន្លឹះល្អ: ប៉ារ៉ាម៉ែត្រដើមធ្វើឲ្យ פונקציות របស់អ្នកងាយស្រួលក្នុងការប្រើប្រាស់។ អ្នកប្រើអាចចាប់ផ្តើមបានឆាប់រហ័សជាមួយតម្លៃលំនាំដើមដែលហានិភ័យបាន ប៉ុន្តែក៏អាចកែប្រែបានពេលត្រូវការ!

តម្លៃត្រឡប់

פונקציות របស់យើងមកនេះបានគ្រាន់តែបោះពុម្ពសារ ទៅកាន់កុងសូល ប៉ុន្តែក៏បើអ្នកចង់បាន פונקציה មួយ គណនា អ្វីមួយ ហើយផ្ដល់លទ្ធផលត្រឡប់មកវិញ?

នេះជាកន្លែងដែល តម្លៃត្រឡប់ ចូលមក។ ជំនួសការបង្ហាញអ្វីមួយ פונקציה អាចផ្ដល់តម្លៃមួយដែលអ្នកអាចរក្សាទុកក្នុងអថេរឬប្រើនៅផ្នែកផ្សេងក្នុងកូដរបស់អ្នក។

ដើម្បីផ្ញើតម្លៃត្រឡប់ អ្នកប្រើពាក្យគន្លឹះ return ដោយបន្ទាប់មកគឺតម្លៃដែលអ្នកចង់ត្រឡប់:

return myVariable;

មានរឿងដ៏សំខាន់មួយ៖ ពេល פונקציה ឈ្លោះឃួបប្រយោល return វានឹងបញ្ឈប់រត់ភ្លាមៗ ហើយផ្ញើតម្លៃនោះទៅអ្នកហៅ។

មកកែប្រែ פונקציה ស្វាគមន៍ របស់យើងឲ្យត្រឡប់សារវិញ គឺមិនបោះពុម្ពវាឡើយ៖

function createGreetingMessage(name) {
  const message = `Hello, ${name}`;
  return message;
}

ឥឡូវនេះ ផ្ទុយពីបោះពុម្ពសារ פונקציהនេះបង្កើតសារ ហើយផ្ញើវាទៅយើងវិញ។

ដើម្បីប្រើតម្លៃត្រឡប់ អ្នកអាចរក្សាទុកវាទៅក្នុងអថេរដូចជាតម្លៃមួយទៀត៖

const greetingMessage = createGreetingMessage('Christopher');

ឥឡូវ greetingMessage មាន "Hello, Christopher" ហើយអ្នកអាចប្រើវាណាមួយក្នុងកូដរបស់អ្នក – ដើម្បីបង្ហាញវាលើគេហទំព័រ រួមបញ្ចូលវាទៅក្នុងអ៊ីមែល ឬផ្ញើវាទៅកាន់ פונקציהផ្សេងទៀត។

flowchart TD
    A["🔧 ការបំលែងមុខងារ"] --> B{"ពាក្យបញ្ជាទើបត្រឡប់មកវិញ?"}
    B -->|បាទ| C["📤 តម្លៃត្រឡប់"]
    B -->|ទេ| D["📭 ត្រឡប់ undefined"]
    
    C --> E["💾 រក្សាទុកក្នុងអថេរ"]
    C --> F["🔗 ប្រើនៅក្នុងការបញ្ចេញអនុគមន៍"]
    C --> G["📞 បញ្ជូនទៅមុខងារ"]
    
    D --> H["⚠️ ជាទូទៅមិនមានប្រយោជន៍"]
    
    I["📋 ការប្រើតម្លៃត្រឡប់"] --> I1["គណនាលទ្ធផល"]
    I --> I2["ផ្ទៀងផ្ទាត់ការបញ្ជូល"]
    I --> I3["បម្លែងទិន្នន័យ"]
    I --> I4["បង្កើតវត្ថុ"]
    
    style C fill:#e8f5e8
    style D fill:#ffebee
    style I fill:#e3f2fd

🔄 ត្រួតពិនិត្យតម្លៃត្រឡប់៖ ទទួលលទ្ធផលវិញ

វាយតម្លៃការយល់ដឹងរបស់អ្នកអំពីតម្លៃត្រឡប់៖

  • តើកូដដែលនៅក្រោយពាក្យ return ចូលចិត្តកើតអ្វី?
  • ហេតុអ្វីបានជា តម្លៃចេញល្អជាងគ្រាន់តែបោះពុម្ពទៅកាន់Console?
  • פונקציה មួយអាចត្រឡប់តម្លៃប្រភេទផ្សេងៗ យ៉ាងដូចម្តេច (ខ្សែអក្សរ លេខ ប៊ុលលែន)?
pie title "ប្រភេទតម្លៃត្រឡប់ធម្មតា"
    "ខ្សែអក្សរ" : 30
    "លេខ" : 25
    "វត្ថុ" : 20
    "តម្លៃប៊ូល" : 15
    "អារ័យ" : 10

ចំណុចសំខាន់: פונקציות ដែលត្រឡប់តម្លៃមានភាពបត់បែនពីព្រោះអ្នកហៅជ្រើសរើសអ្វីដែលចង់ធ្វើជាមួយលទ្ធផលនេះ។ វាធ្វើឱ្យកូដរបស់អ្នកមានភាពប្រសើរនិងអាចប្រើឡើងវិញបាន!

פונקציות ឲ្យជា ប៉ារ៉ាម៉ែត្រសម្រាប់ פונקציותផ្សេងទៀត

פונקציות អាចផ្ញើទៅជា ប៉ារ៉ាម៉ែត្រសម្រាប់ פונקציותផ្សេងៗបាន។ ទស្សនៈនេះអាចលំបាកដំបូងប៉ុន្តែវាជាលក្ខណៈអនុញ្ញាតឱ្យមានលំនាំកម្មវិធីដែលបត់បែន។

លំនាំនេះគឺពេញនិយមច្រើនពេលដែលអ្នកចង់ប្រាប់ "ពេលមានអ្វីកើតឡើង សូមធ្វើរឿងនេះ។" ឧទាហរណ៍ "ពេលម៉ោងបញ្ចប់ ដំណើរការវា" ឬ "ពេលអ្នកប្រើចុចប៊ូតុង ហៅ פונקציהនេះ។"

មកមើល setTimeout ដែលជាហើយ פונקציה ដែលរងចាំរយៈពេលមួយ ហើយបន្ទាប់មករត់កូដមួយ។ យើងត្រូវប្រាប់វាអ្វីដែលត្រូវរត់ – គន្លងល្អសម្រាប់ផ្ញើ פונקציה!

សូមសាកល្បងកូដនេះ – បន្ទាប់ពី 3 វិនាទី អ្នកនឹងមើលឃើញសារ៖

function displayDone() {
  console.log('3 seconds has elapsed');
}
// តម្លៃម៉ោងកំណត់គឺជាមីល្លីវិនាទី
setTimeout(displayDone, 3000);

សូមចំណាំថាយើងផ្ញើ displayDone (គ្មានបុគ្គលិក) ទៅ setTimeout។ យើងមិនហៅ פונקציהដោយផ្ទាល់ – យើងផ្ទេរវាទៅ setTimeout ហើយប្រាប់ថា "ហៅវាក្នុង 3 វិនាទី។"

פונקציות អនុគ្រោះនាម

ពេលខ្លះ អ្នកត្រូវការ פונקציה សម្រាប់រឿងមួយតែម្ដង ហើយមិនចង់ផ្ដល់ឈ្មោះសម្រាប់វា។ សូមគិតថា – ប្រសិនបើអ្នកប្រើ פונקציהតែម្តងហើយ ហេតុអ្វីបានចំលើយកូដរបស់អ្នកជាមួយឈ្មោះបន្ថែម?

JavaScript អនុញ្ញាតឱ្យអ្នកបង្កើត פונקציות អនុគ្រោះនាម – פונקציותគ្មានឈ្មោះ ដែលអ្នកអាចកំណត់ត្រឹមស្រមោលកន្លែងដែលអ្នកចង់ប្រើវា។

នេះជារបៀបដែលយើងអាចកែប្រែឧទាហរណ៍ម៉ោងរបស់យើងដោយប្រើ פונקציה អនុគ្រោះនាម៖

setTimeout(function() {
  console.log('3 seconds has elapsed');
}, 3000);

វានាំឲ្យទទួលបានលទ្ធផលដូចគ្នា ប៉ុន្តែ פונקציה ត្រូវបានកំណត់ដោយផ្ទាល់នៅក្នុង ការហៅ setTimeout ហើយមិនទាមទារការបញ្ជាក់ פונקציה ផ្សេងទៀតនោះទេ។

פונקציות សម្រួលពាណិជ្ជកម្ម

JavaScript នាទីថ្មី មានវិធីសាមញ្ញមួយក្នុងការសរសេរ פונקציות ហៅថា פונקציות សម្រួលពាណិជ្ជកម្ម។ អ្នកប្រើ => (ដែលមើលទៅដូចព្រួញ – យល់ទេ?) ហើយពេញនិយមជាមួយអ្នកអភិវឌ្ឍ។

פונקציות សម្រួលពាណិជ្ជកម្ម អាចអោយអ្នករំកិលពាក្យគន្លឹះ function ហើយសរសេរកូដអោយច្រើនសង្ខេប។

នេះជាឧទាហរណ៍ម៉ោងរបស់យើងប្រើ פונקציה សម្រួលពាណិជ្ជកម្ម៖

setTimeout(() => {
  console.log('3 seconds has elapsed');
}, 3000);

() គឺជាទីតាំងដែលប៉ារ៉ាម៉ែត្រនឹងនៅ (ទទេក្នុងករណីនេះ) បន្ទាប់មកមានព្រួញ => ហើយសរុបបន្ទាត់ខាងក្នុងនៅក្នុងគូក។ វាបង្កើតមុខងារតែមួយ ដោយសង្ខេបជាង។

flowchart LR
    A["📝 រចនាប័ទ្មមុខងារ"] --> B["បែបប្រពៃណី"]
    A --> C["ព្រំ"]
    A --> D["មិនមានឈ្មោះ"]
    
    B --> B1["function name() {}"]
    B --> B2["បានលឹកឡើង"]
    B --> B3["មានឈ្មោះ"]
    
    C --> C1["const name = () => {}"]
    C --> C2["វាគ្មិនខ្លី"]
    C --> C3["រចនាប័ទ្មទំនើប"]
    
    D --> D1["function() {}"]
    D --> D2["គ្មានឈ្មោះ"]
    D --> D3["ប្រើមួយដង"]
    
    E["⏰ ពេលប្រើ"] --> E1["ប្រពៃណី: មុខងារអាចប្រើបន្ត"]
    E --> E2["ព្រំ: ការហៅត្រឡប់ខ្លីៗ"]
    E --> E3["មិនមានឈ្មោះ: អ្នកគ្រប់គ្រងព្រឹត្តិការណ៍"]
    
    style A fill:#e3f2fd
    style B fill:#e8f5e8
    style C fill:#fff3e0
    style D fill:#f3e5f5
    style E fill:#e0f2f1

ពេលណាដែលគួរប្រើវិធីសាស្រ្តនីមួយៗ

ពេលណាដែលអ្នកគួរប្រើវិធីសាស្រ្តនីមួយៗ? គន្លឹះប្រតិបត្តិ៖ ប្រសិនបើអ្នកចង់ប្រើ פונקציה ម្តងច្រើន សូមផ្ដល់ឈ្មោះ និងកំណត់វាផ្សេងៗ។ ប្រសិនបើគឺសម្រាប់រឿងដែលមួយ ហៅ פונקציה អនុគ្រោះនាម។ ទាំង פונקציות សម្រួលពាណិជ្ជកម្ម និងហេតុបុព្វបទបុរាណជាជម្រើសត្រឹមត្រូវ ប៉ុន្តែ פונקציות សម្រួលពាណិជ្ជកម្មពេញនិយមនៅក្នុងកូដ JavaScript សព្វថ្ងៃ។

🎨 ត្រួតពិនិត្យស្ទីល פונקציה៖ ជ្រើសរើសសន្ទស្សន៍ត្រឹមត្រូវ

សាកល្បងការយល់ដឹង របស់អ្នកអំពីសន្ទស្សន៍៖

  • ពេលណាអ្នកអាចចង់ប្រើ פונקציות សម្រួលពាណិជ្ជកម្ម ជាងសន្ទស្សន៍ פונקציה ទំនើប?
  • អត្ថប្រយោជន៍សំខាន់របស់ פונקציות អនុគ្រោះនាមគឺអ្វី?
  • អ្នកអាចនិយាយពីស្ថានភាពណាមួយដែល פונקציה មានឈ្មោះមានអត្ថប្រយោជន៍ជាង פונקציה អនុគ្រោះនាម?
quadrantChart
    title មាត្រដ្ឋានសេចក្តីសម្រេចជម្រើសមុខងារ
    x-axis ម្យ៉ាងសាមញ្ញ --> ស្មុគស្មាញ
    y-axis ប្រើម្តងតែម្តង --> អាចប្រើឡើងវិញ
    quadrant-1 មុខងារ Arrow
    quadrant-2 មុខងារដែលមានឈ្មោះ
    quadrant-3 មុខងារឥតឈ្មោះ
    quadrant-4 មុខងារប្រពៃណី
    
    Event Handlers: [0.3, 0.2]
    Utility Functions: [0.7, 0.8]
    Callbacks: [0.2, 0.3]
    Class Methods: [0.8, 0.7]
    Mathematical Operations: [0.4, 0.6]

និន្នាការបច្ចុប្បន្ន: פונקציות สម្រួលពាណិជ្ជកម្មកំពុងក្លាយទៅជាជម្រើសលំនាំដើមសម្រាប់អ្នកអភិវឌ្ឍជាច្រើនដោយសារសន្ទស្សន៍របស់ពួកវា ប៉ុន្តែ פונקציות បុរាណនៅតែមានកន្លែងខ្លួន!


🚀 ការប្រកួតប្រជែង

តើអ្នកអាចប្រាប់បានក្នុងតួអក្សរមួយពីភាពខុសគ្នារវាង פונקציות និងវីធីសាស្រ្តទេ? សាកល្បងមើល!

ការប្រកួតប្រជែង GitHub Copilot Agent 🚀

ប្រើរបៀបទំនាក់ទំនង Agent ដើម្បីបញ្ចប់ឧបាស្រ័យខាងក្រោម៖

ការពិពណ៌នា: បង្កើតបណ្ណាល័យឧបករណ៍។ פונקציות គណិតវិទ្យា ដែលបង្ហាញមុខងារផ្សេងៗនៃ פונקציה ក្នុងមេរៀននេះ រួមទាំងប៉ារ៉ាម៉ែត្រ, តម្លៃផ្ទាល់ខ្លួន, តម្លៃត្រឡប់ និង פונקציות សម្រួលពាណិជ្ជកម្ម។

ការបញ្ជូន: បង្កើតឯកសារ JavaScript ឈ្មោះ mathUtils.js ដែលមាន פונקציותដូចខាងក្រោម៖

  1. פונקציה add ដែលទទួលប៉ារ៉ាម៉ែត្រ ២ និងត្រឡប់គំនូសរបស់ពួកវា
  2. פונקציה multiply មានតម្លៃប៉ារ៉ាម៉ែត្រដើម (ប៉ារ៉ាម៉ែត្រទី២មានតម្លៃត្រូវនៅ 1)
  3. פונקציה សម្រួលពាណិជ្ជកម្ម square ដែលទទួលលេខមួយ និងត្រឡប់ការការ៉េរបស់វា
  4. פונקציה calculate ដែលទទួល פונקציהផ្សេងទៀតជា ប៉ារ៉ាម៉ែត្រ និងលេខ ២ ហើយអនុវត្ត פונקציהទៅលើលេខទាំងពីរ
  5. បង្ហាញពីការហៅ פונקציהនីមួយៗជាមួយករណីសាកល្បងសមរម្យ

ស្វែងយល់បន្ថែមអំពី agent mode នៅទីនេះ។

សំណួរប្រឡងបន្ទាប់វគ្គសិក្សា

សំណួរប្រឡងបន្ទាប់វគ្គសិក្សា

ការត្រួតពិនិត្យ និងរៀនដោយខ្លួនឯង

គួរពិនិត្យអានបន្តពី פונקציות សម្រួលពាណិជ្ជកម្ម ដែលពួកវាកាន់តែប្រើប្រាស់សូម្បីនៅក្នុងបណ្ណាល័យកូដ។ អនុវត្តសរសេរ פונקציה ហើយបន្ទាប់មកកែសម្រួលវាជាមួយសន្ទស្សន៍នេះ។

បេសកកម្ម

សប្បាយរីករាយជាមួយ פונקציות


🧰 សេចក្ដីសង្ខេបឧបករណ៍ פונקציות JavaScript របស់អ្នក

graph TD
    A["🎯 អនុគមន៍ JavaScript"] --> B["📋 ការបញ្ចადგენ פונקציה"]
    A --> C["📥 ប៉ារ៉ាឡែម៉ែត្រ"]
    A --> D["📤 តម្លៃត្រឡប់"]
    A --> E["🎨 វិធីសាស្រ្តទំនើប"]
    
    B --> B1["function name() {}"]
    B --> B2["ការដាក់ឈ្មោះពិពណ៌នា"]
    B --> B3["ប្លុកកូដអាចប្រើឡើងវិញ"]
    
    C --> C1["ទិន្នន័យបញ្ចូល"]
    C --> C2["តម្លៃលំនាំដើម"]
    C --> C3["ប៉ារ៉ាម៉ែត្រច្រើន"]
    
    D --> D1["ប្រកាស return"]
    D --> D2["ចេញពីអនុគមន៍"]
    D --> D3["បញ្ជូនទិន្នន័យត្រឡប់"]
    
    E --> E1["អនុគមន៍ arrow: () =>"]
    E --> E2["អនុគមន៍អនាមិក"]
    E --> E3["អនុគមន៍ជាលំដាប់ខ្ពស់"]
    
    F["⚡ អត្ថប្រយោជន៍សំខាន់"] --> F1["ការប្រើកូដឡើងវិញ"]
    F --> F2["ការរៀបចំ غوره"]
    F --> F3["ការធ្វើតេស្តងាយស្រួល"]
    F --> F4["ការរចនាម៉ូឌុល"]
    
    style A fill:#e3f2fd
    style B fill:#e8f5e8
    style C fill:#fff3e0
    style D fill:#f3e5f5
    style E fill:#e0f2f1
    style F fill:#fce4ec

🚀 រាបរាល់ពេលវេលានៃជំនាញ פונקציות JavaScript របស់អ្នក

⚡ អ្វីដែលអ្នកអាចធ្វើបានក្នុង 5 នាទីបន្ទាប់

  • សរសេរ function ងាយៗមួយដែលត្រឡប់លេខដែលអ្នកចូលចិត្ត
  • បង្កើត function មួយដែលមានប៉ារ៉ាម៉ែត្រ​ពីរ ដែលបូកពួកវារួមគ្នា
  • ប្រាប់សម្រាប់បំលែង function ប្រពៃណីទៅជាសមាសធាតុ arrow function
  • អនុវត្តការប្រលង៖ ពណ៌នាភាពខុសគ្នារវាង functions និង methods

🎯 អ្វីដែលអ្នកអាចសម្រេចបានក្នុងម៉ោងនេះ

  • បញ្ចប់ការប្រលងបន្ទាប់ពីមេរៀន និងសិក្សាថ្នាក់គំនិតណាដែលធ្វើឱ្យច្របូកច្របល់
  • បង្កើតបណ្ណាល័យ math utilities ពីការប្រកួត GitHub Copilot
  • បង្កើត function ដែលប្រើប្រាស់ functionមួយផ្សេងទៀតជាប៉ារ៉ាម៉ែត្រ
  • អនុវត្តការសរសេរ functions ជាមួយប៉ារ៉ាម៉ែត្រដើម
  • សាកល្បង template literals នៅក្នុងតម្លៃត្រឡប់របស់ function

📅 ការគ្រប់គ្រងFunction រយៈពេលមួយសប្តាហ៍របស់អ្នក

  • បញ្ចប់ការងារ "រីករាយជាមួយ Functions" ជាមួយនឹងភាពច្នៃប្រឌិត
  • កែសម្រួលកូដកើតឡើងជាផ្នែកស្រដៀងៗដែលអ្នកបានសរសេរឲ្យទៅជាការបន្តប្រើបាន
  • បង្កើតគណនាប្រាក់តូចមួយដោយប្រើ function តែប៉ុណ្ណោះ (មិនប្រើប្រាស់អថេរសាកល)
  • អនុវត្ត arrow functions ជាមួយមធ្យោបាយអារេដូចជា map() និង filter()
  • បង្កើតប្រមូលផ្តុំ function គាំទ្រសម្រាប់ការងារពេញនិយម
  • សិក្សាអំពី higher-order functions និងគំនិតកម្មវិធីមូលដ្ឋានជំនួយ

🌟 បម្លែងរយៈពេលមួយខែរបស់អ្នក

  • ជំនាញជ្រាបច្រើនជាងមុនអំពី function ដូចជា closures និង scope
  • បង្កើតគម្រោងដែលប្រើប្រាស់ composition function ថ្លៃថ្នូរ
  • អះអាងចូលរួម open source ដោយបង្កើនឯកសារបានស្តីពី functions
  • បង្រៀនអ្នកដទៃអំពី functions និងរចនាសម្ព័ន្ធមានភាពខុសគ្នា
  • រុករក paradigm កម្មវិធីមូលដ្ឋានជំនួយក្នុង JavaScript
  • បង្កើតបណ្ណាល័យ function ផ្ទាល់ខ្លួនសម្រាប់គម្រោងអនាគត

🏆 ការត្រួតពិនិត្យជ័យលាភី Functions ចុងក្រោយ

អបអរសាទរជំនាញ function របស់អ្នក៖

  • តើ function ដែលមានប្រយោជន៍បំផុតដែលអ្នកបានបង្កើតមានអ្វីខ្លះ?
  • តើការស្គាល់គំនិត functions ប៉ះពាល់យ៉ាងដូចម្តេចចំពោះវិធីដែលអ្នករៀបចំនូវកូដ?
  • តើអ្នកចូលចិត្តរចនាសម្ព័ន្ធ function ណាមួយ ហើយមូលហេតុផលជាអ្វី?
  • តើបញ្ហាជាក់ស្តែងមួយណាដែលអ្នកនឹងដោះស្រាយតាមការសរសេរ function?
journey
    title ការវិវត្តន៍ទំនុកចិត្តលើមុខងាររបស់អ្នក
    section ថ្ងៃនេះ
      ស្ទាក់ស្ទើរដោយវេយ្យាករណ៍: 3: You
      យល់ដឹងមូលដ្ឋាន: 4: You
      សរសេរមុខងារ​ធម្មតា: 5: You
    section សប្ដាហ៍នេះ
      ប្រើប៉ារ៉ាម៉ែត្រ: 4: You
      ត្រឡប់តម្លៃ: 5: You
      វេយ្យាករណ៍សម័យទំនើប: 5: You
    section ខែក្រោយ
      ការរួមបញ្ចូលមុខងារ: 5: You
      គំរូ​កម្រិតខ្ពស់: 5: You
      បង្រៀនអ្នកដទៃ: 5: You

🎉 អ្នកបានទទួលជំនាញមួយក្នុងចំណោមគំនិតដែលមានអំណាចបំផុតនៅក្នុងកម្មវិធី។ Functions គឺជាឧបករណ៍គ្រឹះនៃកម្មវិធីធំៗ។ កម្មវិធីមួយណាដែលអ្នកនឹងបង្កើត តែងតែប្រើ function ដើម្បីរៀបចំ ការប្រើប្រាស់ឡើងវិញ និងរៀបរយកូដ។ ឥឡូវនេះ អ្នកយល់ពីវិធីដាក់តំបន់ហូររបស់ទ្រព្យសម្បត្តិទៅក្នុងចំណុចដែលអាចប្រើប្រាស់ឡើងវិញ ធ្វើឱ្យអ្នកជាអ្នកអភិវឌ្ឍន៍មានប្រសិទ្ធភាពនិងអាចសម្រួល ការងារអ្នក។ សូមស្វាគមន៍មកកាន់ពិភពកម្មវិធីតាមម៉ូឌុល! 🚀


ការបញ្ជាក់៖ ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI Co-op Translator។ ខណៈពេលដែលយើងខំប្រឹងផ្ដល់ភាពត្រឹមត្រូវ សូមយល់ថាការបកប្រែដោយស្វ័យប្រវត្តិសម្បូរទៅដោយកំហុសឬភាពមិនត្រឹមត្រូវក៏អាចមាន។ ឯកសារដើមដែលមានភាសាដើមគួរត្រូវបាននិយាយថាជាដើមកំណត់ តម្លៃសម្របសម្រួល។ សម្រាប់ព័ត៌មានដ៏សំខាន់ សូមប្រើប្រាស់ការបកប្រែដោយមនុស្សជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំឬការរួមភាសាដែលកើតចេញពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។