Javascript 在函数参数中为函数赋值时,是否向函数传递变量?示例:myFunction(arr,newArr=[])
我试图理解当一个变量在函数的参数列表中被赋值时会发生什么 例如:Javascript 在函数参数中为函数赋值时,是否向函数传递变量?示例:myFunction(arr,newArr=[]),javascript,arrays,recursion,default-parameters,Javascript,Arrays,Recursion,Default Parameters,我试图理解当一个变量在函数的参数列表中被赋值时会发生什么 例如:myFunction(arr,newArr=[]) 这是否意味着我正在函数声明中初始化newArr 如果我newArr.push(某物),然后用新的newArr再次调用myFunction,它会用[]的值重新初始化吗?还是只在第一次发生 这更多的是一个理论问题,但这里有一些示例代码: function capitalizeFirst(arr, newArr=[]) { if(arr.length === 0) { ret
myFunction(arr,newArr=[])
这是否意味着我正在函数声明中初始化newArr
如果我newArr.push(某物)
,然后用新的newArr
再次调用myFunction,它会用[]
的值重新初始化吗?还是只在第一次发生
这更多的是一个理论问题,但这里有一些示例代码:
function capitalizeFirst(arr, newArr=[]) {
if(arr.length === 0) {
return newArr;
}
newArr.push(arr[0].charAt(0).toUpperCase() + arr[0].slice(1));
return capitalizeFirst(arr.slice(1), newArr);
};
默认参数仅在参数值为
未定义时使用
-
函数foo(a=[])
{如果(a.length>=5)返回
a、 推(a.长度)
返回foo(a)
}
console.log(JSON.stringify(foo())/`a`未定义
console.log(JSON.stringify(foo([9,9,9]))/`a`is[9,9,9]
console.log(JSON.stringify(foo())/`a`未定义
console.log(foo()==foo())/`a`在调用之间不共享只有当参数的值
未定义时才会使用默认参数-
函数foo(a=[])
{如果(a.length>=5)返回
a、 推(a.长度)
返回foo(a)
}
console.log(JSON.stringify(foo())/`a`未定义
console.log(JSON.stringify(foo([9,9,9]))/`a`is[9,9,9]
console.log(JSON.stringify(foo())/`a`未定义
console.log(foo()==foo())/`a`在调用之间不共享
如果未提供参数,这是默认值<代码>首先返回(arr.slice(1),newArr)不会在递归调用中初始化newArr=[]
。如果未提供参数,这是默认值<代码>首先返回(arr.slice(1),newArr)代码>不会在递归调用中初始化newArr=[]