html
JavaScript рдореЗрдВ Function Parameters рдФрд░ Arguments рдХреЛ рд╕рдордЭрдирд╛
рд╕рд╛рдордЧреНрд░реА рддрд╛рд▓рд┐рдХрд╛
- рдкрд░рд┐рдЪрдп .......................................... 1
- Function Parameters рдмрдирд╛рдо Arguments ... 3
- JavaScript рдореЗрдВ Default Parameters ...... 7
- Undefined Parameters рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ ........ 12
- Parameters рдФрд░ Arguments рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдПрдБ ....... 17
- рдирд┐рд╖реНрдХрд░реНрд╖ ............................................. 22
- рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд╕рд╛рдзрди .......................... 24
рдкрд░рд┐рдЪрдп
JavaScript рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ, function parameters рдФрд░ arguments рдХреЛ рд╕рдордЭрдирд╛ рдореВрд▓рднреВрдд рд╣реИред Functions JavaScript рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ building blocks рд╣реИрдВ, рдЬреЛ developers рдХреЛ reusable рдФрд░ efficient code рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддреЗ рд╣реИрдВред рдпрд╣ eBook function parameters рдФрд░ arguments рдХреА intricacies рдореЗрдВ рдЧреЛрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ, рдЙрдирдХреЗ roles, differences, рдФрд░ best practices рдХреЛ elucidate рдХрд░рддрд╛ рд╣реИред рдЪрд╛рд╣реЗ рдЖрдк beginner рд╣реЛрдВ рдпрд╛ basic knowledge рд╡рд╛рд▓реЗ developer, рдпрд╣ guide рдЖрдкрдХреЗ projects рдореЗрдВ рдЗрди concepts рдХреА рд╕рдордЭ рдФрд░ application рдХреЛ рдмрдврд╝рд╛рдПрдЧрд╛ред
Parameters рдФрд░ Arguments рдХрд╛ рдорд╣рддреНрд╡
Parameters рдФрд░ arguments functions рдХреЛ рдСрдкрд░реЗрдЯ рдХрд░рдиреЗ рдФрд░ data рдХреЗ рд╕рд╛рде interact рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рдпреЗ functions рдХреЛ input рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ, рдЙрд╕реЗ process рдХрд░рдиреЗ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЖрдкрдХрд╛ code dynamic рдФрд░ versatile рдмрдирддрд╛ рд╣реИред рдЗрди concepts рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХрд╛ codebases рдЕрдзрд┐рдХ readable, maintainable, рдФрд░ efficient рдмрдирддрд╛ рд╣реИред
Pros and Cons
Pros:
- Reusability: Functions рд╡рд┐рднрд┐рдиреНрди inputs рдХреЗ рд╕рд╛рде рдкреБрди: рдкреНрд░рдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
- Modularity: Code рдХреЛ manageable рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ organize рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- Maintainability: рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдФрд░ debug рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИред
Cons:
- Complexity: Mismanagement рд╕реЗ bugs рдФрд░ undefined behaviors рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
- Overhead: рдЕрддреНрдпрдзрд┐рдХ parameters рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ functions рдмреЛрдЭрд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
Parameters рдФрд░ Arguments рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдФрд░ рдХрд╣рд╛рдБ рдХрд░реЗрдВ
Functions рдХреЛ varying inputs рдХреЗ рдЖрдзрд╛рд░ рдкрд░ operations perform рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдиреЗ рдкрд░ parameters рдФрд░ arguments рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ scenarios рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИрдВ рдЬреЛ data manipulation, user input handling, рдФрд░ dynamic responses рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИрдВред
Comparison Table: Parameters vs. Arguments
рд╡рд┐рд╢реЗрд╖рддрд╛ | Parameters | Arguments | ||||
---|---|---|---|---|---|---|
рдкрд░рд┐рднрд╛рд╖рд╛ | Functions рдХреА signatures рдореЗрдВ defined variablesред | Functions рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдкрд╛рд╕ рдХрд┐рдП рдЧрдП actual valuesред | ||||
рдЙрдкрдпреЛрдЧ рд╕рдВрджрд░реНрдн | Function definitions рдХреЗ рднреАрддрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред | Functions рдХреЛ invoke/call рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред | ||||
рдЙрджрд╛рд╣рд░рдг |
|
|
||||
рд▓рдЪреАрд▓рд╛рдкрди | Default values рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред | Calls рдХреЗ рдЖрдзрд╛рд░ рдкрд░ number рдФрд░ type рдореЗрдВ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред |
Range рдФрд░ Size Comparison Table
рд╡рд┐рд╢реЗрд╖рддрд╛ | JavaScript | рдЕрдиреНрдп рднрд╛рд╖рд╛рдПрдБ (рдЬреИрд╕реЗ Java, C++) |
---|---|---|
Parameter Flexibility | Highly flexible, allows undefined parameters. | Strict, often requires exact number of arguments. |
Default Parameters | Supported using default values. | Limited support, often requires method overloading. |
Argument Passing | Pass-by-value for primitives, pass-by-reference for objects. | Varies, commonly pass-by-value or reference based on type. |
Function Parameters рдмрдирд╛рдо Arguments
рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ рдФрд░ рдЕрдВрддрд░
Parameters functions рдХреА definition рдореЗрдВ listed variables рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рдЙрди values рдХреЗ рд▓рд┐рдП placeholders рдХрд╛ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдкрд░ function operate рдХрд░реЗрдЧрд╛ред Arguments, рджреВрд╕рд░реА рдУрд░, actual values рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ function рдХреЛ invoke рдХрд░рддреЗ рд╕рдордп рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг:
1 2 3 4 5 6 7 |
function greet(name) { // 'name' рдПрдХ parameter рд╣реИ console.log("Hello, " + name + "!"); } greet("John"); // "John" рдПрдХ argument рд╣реИ |
рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, name
greet
function рдХреЗ рднреАрддрд░ рдПрдХ parameter рд╣реИ, рдЬрдмрдХрд┐ "John" function call рдХреЗ рджреМрд░рд╛рди рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ argument рд╣реИред
Interchangeability
рд╣рд╛рд▓рд╛рдВрдХрд┐ parameters рдФрд░ arguments рдХреЛ рдЖрдо рдмрд╛рддрдЪреАрдд рдореЗрдВ рдЕрдХреНрд╕рд░ рдкрд░рд╕реНрдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпреЗ functions operations рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рднреВрдорд┐рдХрд╛рдПрдБ рдирд┐рднрд╛рддреЗ рд╣реИрдВред рдЗрд╕ рдЕрдВрддрд░ рдХреЛ рд╕рдордЭрдирд╛ рд╕реНрдкрд╖реНрдЯ рдФрд░ рдкреНрд░рднрд╛рд╡реА code рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
Multiple Parameters рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛
Functions multiple parameters рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рд╡реЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ operations perform рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг:
1 2 3 4 5 6 7 |
function introduce(name, topic, experience) { console.log(`This is ${name}, we are learning ${topic}, and itтАЩs ${experience}.`); } introduce("John", "JavaScript", "fun"); |
Default Parameters рдмрдирд╛рдо Undefined Parameters
JavaScript functions рдХреЛ default parameter values рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ function operate рдХрд░рддрд╛ рд╣реИ рднрд▓реЗ рд╣реА рдХреБрдЫ arguments рдкреНрд░рджрд╛рди рди рдХрд┐рдП рдЧрдП рд╣реЛрдВред
Default Parameters Example:
1 2 3 4 5 6 7 8 |
function greet(name = "Guest") { console.log("Hello, " + name + "!"); } greet(); // Outputs: Hello, Guest! greet("John"); // Outputs: Hello, John! |
Handling Undefined Parameters:
рдЕрдЧрд░ arguments рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рддреЛ рдмрд┐рдирд╛ default values рд╡рд╛рд▓реЗ parameters undefined
рд╣реЛрдВрдЧреЗ, рдЬрд┐рд╕рд╕реЗ unexpected behaviors рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг:
1 2 3 4 5 6 7 |
function greet(name) { console.log("Hello, " + name + "!"); } greet(); // Outputs: Hello, undefined! |
JavaScript рдореЗрдВ Default Parameters
Default Values рд╕реЗрдЯ рдХрд░рдирд╛
Default parameters functions рдХреЛ default values рдХреЗ рд╕рд╛рде initialize рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЕрдЧрд░ function call рдХреЗ рджреМрд░рд╛рди рдХреЛрдИ arguments рдкрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реЛрдВред
рдЙрджрд╛рд╣рд░рдг:
1 2 3 4 5 6 7 8 |
function greet(name = "Chand", topic = "JavaScript", experience = "fun") { console.log(`This is ${name}, we are learning ${topic}, and itтАЩs ${experience}.`); } greet(); // Outputs: This is Chand, we are learning JavaScript, and itтАЩs fun. greet("Ashley"); // Outputs: This is Ashley, we are learning JavaScript, and itтАЩs fun. |
Default Parameters рдХреЗ рд▓рд╛рдн
- рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИ: рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ parameters рдХреЗ рдкрд╛рд╕ meaningful default values рд╣реЛрдВред
- Functionality рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ: functions рдХреЛ рдЕрдзрд┐рдХ flexible рдФрд░ robust рдмрдирд╛рддрд╛ рд╣реИред
- Function Calls рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИ: рд╣рд░ рдмрд╛рд░ рд╕рднреА arguments рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдкрд░рд┐рджреГрд╢реНрдп
рдПрдХ function рдХреЛ consider рдХрд░реЗрдВ рдЬреЛ рдПрдХ user рдХреЛ introduce рдХрд░рддрд╛ рд╣реИред Default parameters рдХреЗ рд╕рд╛рде, function default values рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЕрдЧрд░ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рдЧрд╛рдпрдм рд╣реЛред
рдЙрджрд╛рд╣рд░рдг:
1 2 3 4 5 6 7 8 |
function introduceUser(name = "Andy", topic = "React", experience = "great") { console.log(`This is ${name}, we are learning ${topic}, and itтАЩs ${experience}.`); } introduceUser("John", "Vue"); // Outputs: This is John, we are learning Vue, and itтАЩs great. introduceUser(); // Outputs: This is Andy, we are learning React, and itтАЩs great. |
Comments рдХреЗ рд╕рд╛рде Code Implementation
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// Default parameters рд╡рд╛рд▓реЗ function function introduceUser(name = "Andy", topic = "React", experience = "great") { // Introduction рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ console.log(`This is ${name}, we are learning ${topic}, and itтАЩs ${experience}.`); } // рд╕рднреА arguments рдХреЗ рд╕рд╛рде function call рдХрд░рдирд╛ introduceUser("John", "Vue", "amazing"); // Output: This is John, we are learning Vue, and itтАЩs amazing. // рдХреБрдЫ arguments рдЧрд╛рдпрдм рд░рдЦрддреЗ рд╣реБрдП function call рдХрд░рдирд╛ introduceUser("John", "Vue"); // Output: This is John, we are learning Vue, and itтАЩs great. // рдмрд┐рдирд╛ рдХрд┐рд╕реА argument рдХреЗ function call рдХрд░рдирд╛ introduceUser(); // Output: This is Andy, we are learning React, and itтАЩs great. |
Step-by-Step Explanation
- Function Definition:
introduceUser
рдХреЛ рддреАрди parameters рдХреЗ рд╕рд╛рде define рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:name
,topic
, рдФрд░experience
ред- рдкреНрд░рддреНрдпреЗрдХ parameter рдХреЗ рдкрд╛рд╕ default value рд╣реИ: "Andy", "React", рдФрд░ "great" рдХреНрд░рдорд╢рдГред
- Function Calls:
- рдЬрдм рд╕рднреА arguments рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, function рдЙрдиреНрд╣реЗрдВ message рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
- рдЕрдЧрд░ рдХреБрдЫ arguments рдЧрд╛рдпрдм рд╣реЛрддреЗ рд╣реИрдВ, function default values рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
- рдЕрдЧрд░ рдХреЛрдИ argument рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рднреА parameters рдЕрдкрдиреА default values рд▓реЗ рд▓реЗрддреЗ рд╣реИрдВред
Handling Undefined Parameters
Undefined Values рдХреА рд╕рдорд╕реНрдпрд╛
рдЬрдм рдПрдХ function рдХреЛ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ arguments рдХреЗ рдмрд┐рдирд╛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЧрд╛рдпрдм parameters undefined
рд╣реЛрддреЗ рд╣реИрдВред рдЕрдЧрд░ рдЗрд╕реЗ рдареАрдХ рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдирд╣реАрдВ рдЧрдпрд╛, рддреЛ runtime errors рдпрд╛ unexpected behaviors рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг:
1 2 3 4 5 6 7 |
function displayInfo(name, age) { console.log(`${name} is ${age} years old.`); } displayInfo("John"); // Outputs: John is undefined years old. |
Undefined Parameters рдХреЗ рдЦрд┐рд▓рд╛рдл Functions рдХреЛ Safe рдХрд░рдирд╛
undefined
parameters рд╕реЗ рдЙрддреНрдкрдиреНрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк default parameters, conditional checks, рдпрд╛ parameter destructuring рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
Default Parameters рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ, default parameters undefined
values рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рдПрдХ straightforward рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг:
1 2 3 4 5 6 7 8 |
function displayInfo(name = "Unknown", age = "N/A") { console.log(`${name} is ${age} years old.`); } displayInfo("John"); // Outputs: John is N/A years old. displayInfo(); // Outputs: Unknown is N/A years old. |
Functions рдХреЗ рдЕрдВрджрд░ Conditional Checks
рдЖрдк рдпрд╣ рднреА рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ parameter undefined
рд╣реИ рдпрд╛ рдирд╣реАрдВ рдФрд░ function body рдХреЗ рднреАрддрд░ default value assign рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг:
1 2 3 4 5 6 7 8 9 10 |
function displayInfo(name, age) { name = name || "Unknown"; age = age || "N/A"; console.log(`${name} is ${age} years old.`); } displayInfo("John"); // Outputs: John is N/A years old. displayInfo(); // Outputs: Unknown is N/A years old. |
Defaults рдХреЗ рд╕рд╛рде Parameter Destructuring
рдЙрди functions рдХреЗ рд▓рд┐рдП рдЬреЛ objects рдХреЛ parameters рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, destructuring рдХреЗ рд╕рд╛рде default values clean approach рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг:
1 2 3 4 5 6 7 8 |
function displayInfo({ name = "Unknown", age = "N/A" } = {}) { console.log(`${name} is ${age} years old.`); } displayInfo({ name: "John" }); // Outputs: John is N/A years old. displayInfo(); // Outputs: Unknown is N/A years old. |
Practical Application
undefined
parameters рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ real-world applications рдореЗрдВ crucial рд╣реИ рдЬрд╣рд╛рдБ functions variable amounts of data рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред Robust parameter handling рдЖрдкрдХреА applications рдХреА reliability рдФрд░ user experience рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИред
Parameters рдФрд░ Arguments рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдПрдБ
1. Meaningful Parameter Names рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
Parameters рдХреЗ рд▓рд┐рдП descriptive names рдЪреБрдиреЗрдВ рддрд╛рдХрд┐ рдЖрдкрдХрд╛ code рдЕрдзрд┐рдХ readable рдФрд░ maintainable рд╣реЛ рд╕рдХреЗред
рдЙрджрд╛рд╣рд░рдг:
1 2 3 |
function calculateTotal(price, quantity) { ... } |
2. Default Parameters рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдПрдВ
Missing arguments рдХреЛ gracefully рд╕рдВрднрд╛рд▓рдиреЗ рдФрд░ fallback values рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП default parameters рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдЙрджрд╛рд╣рд░рдг:
1 2 3 |
function greet(name = "Guest") { ... } |
3. Excessive Parameters рд╕реЗ рдмрдЪреЗрдВ
Parameters рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕реАрдорд┐рдд рд░рдЦреЗрдВ рддрд╛рдХрд┐ functions simple рдФрд░ focused рд░рд╣реЗрдВред рдЕрдЧрд░ рдПрдХ function рдХреЛ рдХрдИ parameters рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ, рддреЛ рд╕рдВрдмрдВрдзрд┐рдд data рдХреЛ group рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП objects рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рдЙрджрд╛рд╣рд░рдг:
1 2 3 |
function createUser({ name, age, email }) { ... } |
4. Parameters Validate рдХрд░реЗрдВ
Parameters рдХреЛ рдЕрдкреЗрдХреНрд╖рд┐рдд criteria, рдЬреИрд╕реЗ type рдФрд░ value ranges, рдХреЛ ensure рдХрд░реЗрдВ рддрд╛рдХрд┐ errors рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ data integrity рдмрдиреА рд░рд╣реЗред
рдЙрджрд╛рд╣рд░рдг:
1 2 3 4 5 6 7 8 |
function setAge(age) { if (typeof age !== 'number' || age < 0) { throw new Error("Invalid age provided."); } // Valid age рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝реЗрдВ } |
5. Function Parameters рдХреЛ Document рдХрд░реЗрдВ
рдЕрдкрдиреЗ functions рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ documentation рдкреНрд░рджрд╛рди рдХрд░реЗрдВ, рдкреНрд░рддреНрдпреЗрдХ parameter рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдФрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд values рдХреЛ specify рдХрд░рддреЗ рд╣реБрдПред
рдЙрджрд╛рд╣рд░рдг:
1 2 3 4 5 6 7 8 9 |
/** * Calculates the total price. * @param {number} price - The price of a single item. * @param {number} quantity - The number of items. * @returns {number} - The total price. */ function calculateTotal(price, quantity) { ... } |
6. Variable Arguments рдХреЗ рд▓рд┐рдП Rest Parameters рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдЬрдм рдПрдХ function рдХреЛ рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ arguments рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ, рддреЛ рдЙрдиреНрд╣реЗрдВ efficiently рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП rest parameters рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдЙрджрд╛рд╣рд░рдг:
1 2 3 4 5 6 7 |
function sum(...numbers) { return numbers.reduce((total, num) => total + num, 0); } sum(1, 2, 3, 4); // Outputs: 10 |
7. Parameter Order рдХреЛ Maintain рдХрд░реЗрдВ
Function calls рдореЗрдВ parameters рдХрд╛ order рдЙрдирдХреА definition рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ unintended behaviors рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХреЗред
рдЙрджрд╛рд╣рд░рдг:
1 2 3 4 5 6 7 8 9 |
function registerUser(username, email, password) { ... } // Correct // Incorrect |
8. Enhanced Readability рдХреЗ рд▓рд┐рдП Destructuring рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
Function parameters рдореЗрдВ objects рдХреЛ destructure рдХрд░реЗрдВ рддрд╛рдХрд┐ code clarity рдмрдврд╝реЗ рдФрд░ complexity рдХрдо рд╣реЛред
рдЙрджрд╛рд╣рд░рдг:
1 2 3 4 5 6 7 8 |
function displayUser({ name, email }) { console.log(`Name: ${name}, Email: ${email}`); } displayUser(user); |
9. Parameter Validation Libraries Implement рдХрд░реЗрдВ
рдмрдбрд╝реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП, Joi рдпрд╛ Yup рдЬреИрд╕реА libraries рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рддрд╛рдХрд┐ function parameters рдХреЛ validate рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдЬрд┐рд╕рд╕реЗ consistency рдФрд░ reliability рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛ рд╕рдХреЗред
Joi рдХреЗ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдг:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
const Joi = require('joi'); const schema = Joi.object({ name: Joi.string().min(3).required(), age: Joi.number().integer().min(0) }); function createUser(data) { const { error, value } = schema.validate(data); if (error) { throw new Error(error.details[0].message); } // Validated data рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝реЗрдВ } |
10. рдЬрдм рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ Refactor рдХрд░реЗрдВ
Parameters рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ optimize рдХрд░рдиреЗ, performance рдФрд░ maintainability рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ functions рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдФрд░ refactor рдХрд░реЗрдВред
рдЙрджрд╛рд╣рд░рдг:
Refactoring рд╕реЗ рдкрд╣рд▓реЗ:
1 2 3 |
function updateProfile(name, email, phone, address, city, state, zip) { ... } |
Refactoring рдХреЗ рдмрд╛рдж:
1 2 3 |
function updateProfile({ name, email, phone, address, city, state, zip }) { ... } |
рдирд┐рд╖реНрдХрд░реНрд╖
Function parameters рдФрд░ arguments рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛ efficient рдФрд░ maintainable JavaScript code рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред Parameters рдФрд░ arguments рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рдХреЛ рд╕рдордЭрдиреЗ, default values рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ, undefined parameters рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ, рдФрд░ best practices рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рд╕реЗ developers versatile рдФрд░ robust functions рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ eBook рдиреЗ foundational concepts, practical implementations, рдФрд░ advanced techniques рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХреА JavaScript рдпрд╛рддреНрд░рд╛ рдХреЛ рд╕рд╢рдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЗрди strategies рдХреЛ рдЕрдкрдирд╛рдПрдВ рддрд╛рдХрд┐ рдЖрдкрдХреА coding proficiency рдмрдврд╝реЗ рдФрд░ resilient applications рдмрдирд╛рдП рдЬрд╛ рд╕рдХреЗрдВред
SEO Keywords: JavaScript function parameters, JavaScript arguments, default parameters, handling undefined parameters, function best practices, JavaScript programming, beginner JavaScript, JavaScript tutorial, function syntax, JavaScript coding tips
рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд╕рд╛рдзрди
- MDN Web Docs: Functions
- JavaScript Info: Functions
- Eloquent JavaScript: Functions
- You Don't Know JS: Scope & Closures
- JavaScript Tutorial on W3Schools
This article is AI generated.