Dou*_*ord 222 javascript arguments function
可能重复:
如何为javascript函数创建参数的默认值
在PHP中:
function func($a = 10, $b = 20){
// if func() is called with no arguments $a will be 10 and $ b will be 20
}
Run Code Online (Sandbox Code Playgroud)
你怎么能用JavaScript做到这一点?
如果我尝试在函数参数中赋值,则会出错
缺少)正式参数后
Rav*_*afi 375
在javascript中,你可以调用一个没有参数的函数(即使它有参数).
所以你可以像这样添加默认值:
function func(a, b){
if (typeof(a)==='undefined') a = 10;
if (typeof(b)==='undefined') b = 20;
//your code
}
Run Code Online (Sandbox Code Playgroud)
然后你可以调用它func();
来使用默认参数.
这是一个测试:
function func(a, b){
if (typeof(a)==='undefined') a = 10;
if (typeof(b)==='undefined') b = 20;
alert("A: "+a+"\nB: "+b);
}
//testing
func();
func(80);
func(100,200);
Run Code Online (Sandbox Code Playgroud)
Boo*_*jaa 137
ES2015起:
从ES6/ES2015开始,我们在语言规范中有默认参数.所以我们可以做一些简单的事情,比如
function A(a, b = 4, c = 5) {
}
Run Code Online (Sandbox Code Playgroud)
或与ES2015解构相结合,
function B({c} = {c: 2}, [d, e] = [3, 4]) {
}
Run Code Online (Sandbox Code Playgroud)
有关详细说明,
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/default_parameters
如果没有传递值或未定义,则默认函数参数允许使用默认值初始化形式参数.
预ES2015:
如果您要处理的值不是数字,字符串,布尔值NaN
,或者null
您可以使用
(因此,对于您计划永不发送的对象,数组和函数null
,您可以使用)
param || DEFAULT_VALUE
Run Code Online (Sandbox Code Playgroud)
例如,
function X(a) {
a = a || function() {};
}
Run Code Online (Sandbox Code Playgroud)
虽然这看起来简单,还挺有效,这是限制性的,因为可以反模式||
上的所有falsy值(操作""
,null
,NaN
,false
,0
)太-这使得这种方法,不能指定设置了一个param作为参数传递的falsy值.
因此,为了只undefined
显式处理值,首选的方法是,
function C(a, b) {
a = typeof a === 'undefined' ? DEFAULT_VALUE_A : a;
b = typeof b === 'undefined' ? DEFAULT_VALUE_B : b;
}
Run Code Online (Sandbox Code Playgroud)
jtb*_*des 12
您必须检查参数是否未定义:
function func(a, b) {
if (a === undefined) a = "default value";
if (b === undefined) b = "default value";
}
Run Code Online (Sandbox Code Playgroud)
我从来没有在JavaScript中看到过这种方式.如果你想要一个带有可选参数的函数,如果省略了这些参数,那么可以获得指定的默认值,这是一种方法:
function(a, b) {
if (typeof a == "undefined") {
a = 10;
}
if (typeof b == "undefined") {
a = 20;
}
alert("a: " + a + " b: " + b);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
206740 次 |
最近记录: |