P-R*_*RAD 4 javascript default-parameters ecmascript-6
function myfunc( value1, value2='defaultValue' ) {
//some stuff
}
Run Code Online (Sandbox Code Playgroud)
如果参数传入或不传入函数,我怎么知道呢?我知道如果你没有传递任何东西作为参数,将设置默认值.我实际上想要检查用户是否作为第二个参数传递任何东西(即使它与默认值相同)并更改我的返回相应的价值.
谢谢,
T.J*_*der 10
arguments仍代表您发送的实际参数,因此arguments.length会向您提供该信息.
function myfunc( value1, value2='defaultValue' ) {
console.log("value1", value1);
console.log("value2", value2);
console.log("length", arguments.length);
}
myfunc("foo");Run Code Online (Sandbox Code Playgroud)
在兼容的JavaScript引擎上,输出
value1 foo value2 defaultValue length 1
arguments但是,不会在箭头功能中工作,并且estus发布了一个很好的替代方案.
对于复杂的参数处理,rest参数可能是有益的,也可以弃用arguments.length:
function myfunc(...args) {
let [value1, value2 = 'defaultValue'] = args;
console.log("value1", value1);
console.log("value2", value2);
console.log("args.length", args.length);
}
myfunc("foo");Run Code Online (Sandbox Code Playgroud)
手动参数解析对于使用直观的默认方法的情况特别有用,即,当传递的参数应该替换默认值时,即使它是undefined:
function myfunc(...args) {
const defaultArgs = ['defaultValue1', 'defaultValue2'];
let [value1, value2] = Object.assign(defaultArgs, args);
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
485 次 |
| 最近记录: |