How can I declare optional function parameters in Javascript?
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Is there a better way to do optional function parameters in Javascript?
我能像这样声明默认参数吗
1 2 3 4 | function myFunc( a, b=0) { // b is my optional parameter } |
在JavaScript中。
ES6:这是语言的一部分:
1 2 3 | function myFunc(a, b = 0) { // function body } |
请记住,ES6检查的值与
用ES5:
1 2 3 4 5 | function myFunc(a,b) { b = b || 0; // b will be set either to b or to 0. } |
只要您明确传递的所有值都是真实的,这就有效。根据微神的评论,不真实的价值观:以东记(1)
在函数实际启动之前,通常会看到JavaScript库对可选输入进行一系列检查。
更新
使用ES6,这完全可以按照您描述的方式实现;详细描述可以在文档中找到。
旧答案javascript中的默认参数主要有两种实现方式:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function myfunc(a, b) { // use this if you specifically want to know if b was passed if (b === undefined) { // b was not passed } // use this if you know that a truthy value comparison will be enough if (b) { // b was passed and has truthy value } else { // b was not passed or has falsy value } // use this to set b to a default value (using truthy comparison) b = b ||"default value"; } |
表达式
替代声明:
1 2 3 4 5 6 7 8 9 10 11 | function myfunc(a) { var b; // use this to determine whether b was passed or not if (arguments.length == 1) { // b was not passed } else { b = arguments[1]; // take second argument } } |
特殊的"数组"
这通常用于支持未知数量的可选参数(相同类型);但是,最好说明预期参数!
进一步考虑虽然
1 2 | b === void 0; typeof b === 'undefined'; // also works for undeclared variables |