Why Do You Need JavaScript Default Parameters?
为什么你需要 JavaScript 预设参数?
参数与引数 Parameters and Arguments
参数代表一个值你期望函式所接收;引数则是函式呼叫时所传递的值。概念上很容易理解,但实际上容易混淆 😅,有一个使用斜音开头的方式来记忆它们我觉得蛮有效的:
- 参数(占位符):Parameter → Placeholder
- 引数(实际值):Argument → Actual value
function example(parameter) { // ...}
example(argument);
发现问题
要了解预设参数,就要从现有的问题说起。在 JavaScript 中函式可以使用任意数量的参数与引数,但如果参数没有对应的引数将导致该变数成为未定义。
function greeting(message) { console.log(message);}
greeting(); // undefined
使用预设参数
使用预设参数语法,只需要在参数后面加上等号与预设值即可,当没有引数时就会自动使用参数预设值。
function greeting(message = '预设打招呼') { console.log(message);}
greeting(); // 预设打招呼
如果不使用预设参数,就会需要这样写:
function greeting(message) { if (typeof message === 'undefined') { message = '预设打招呼'; } console.log(message);}
greeting(); //预设打招呼