Javascript 函数参数内的自动数组分解?
上述cod不起作用,因为“宽度”和“高度”未在函数体中定义 但是,下面的函数定义工作得很好,我不太清楚为什么数组参数会自动分解为下面的元素,而在上面的情况下却不是这样Javascript 函数参数内的自动数组分解?,javascript,arrays,destructuring,Javascript,Arrays,Destructuring,上述cod不起作用,因为“宽度”和“高度”未在函数体中定义 但是,下面的函数定义工作得很好,我不太清楚为什么数组参数会自动分解为下面的元素,而在上面的情况下却不是这样 function getValues(param=[width, height]) { return `Width= ${width}, Height = ${height}`; } 如能在此澄清,我将不胜感激。谢谢。 第一个函数将中的数组值分配给param函数参数 第二个函数只有参数作为值 你应该试试 funct
function getValues(param=[width, height]) {
return `Width= ${width}, Height = ${height}`;
}
如能在此澄清,我将不胜感激。谢谢。- 第一个函数将中的数组值分配给
函数参数param
- 第二个函数只有参数作为值李>
function getValues([width, height]) {
return `Width= ${width}, Height = ${height}`;
}
两种功能都很好。在第二个数组中,数组的第一个值分配给函数范围中的
宽度
变量,第二个值分配给高度
变量。记住使用数组调用函数
function getValues(param=[width, height]) {
return `Width= ${param[0]}, Height = ${param[1]}`;
}
在参数中使用
=
基本上是在缺少参数()的情况下设置默认值。一旦调用缺少参数或未定义
作为参数的函数,则会针对参数设置默认值。在您的示例中,如果传递任何参数,默认值[width,height]
将被忽略,如果不传递,则会抛出未捕获引用错误,因为宽度和高度不存在(未在全局或函数范围中定义)
下面将为您提供宽度和高度的值,因为第一个参数分配给width
,第二个参数分配给height
函数getValues(宽度、高度、参数=[width、height]){
控制台日志(参数);//[5,6]
返回`Width=${Width},Height=${Height}`;
}
log(getValues(5,6))代码>啊。。我的错误。。如果使用Ramesh的答案就好了。是的,你的代码工作得很好,我对此没有异议。但是,为什么不像我的第二段代码那样,在这里不进行阵列分解呢?我试图理解什么时候在函数参数中发生数组分解。谢谢,您的语句=在参数中,基本上设置默认值澄清了我一半的困惑。你能评论一下我的结论吗?函数参数中的数组元素总是被解构的,并且在函数定义中可以作为变量使用。这是正确的结论吗@Nikhil AggarwalThey始终可用,如果需要,可以对其进行分解。
function getValues([width, height]) {
return `Width= ${width}, Height = ${height}`;
}
getValues([100,200]); // 'Width= 100, Height = 200'