Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 函数参数内的自动数组分解?_Javascript_Arrays_Destructuring - Fatal编程技术网

Javascript 函数参数内的自动数组分解?

Javascript 函数参数内的自动数组分解?,javascript,arrays,destructuring,Javascript,Arrays,Destructuring,上述cod不起作用,因为“宽度”和“高度”未在函数体中定义 但是,下面的函数定义工作得很好,我不太清楚为什么数组参数会自动分解为下面的元素,而在上面的情况下却不是这样 function getValues(param=[width, height]) { return `Width= ${width}, Height = ${height}`; } 如能在此澄清,我将不胜感激。谢谢。 第一个函数将中的数组值分配给param函数参数 第二个函数只有参数作为值 你应该试试 funct

上述cod不起作用,因为“宽度”和“高度”未在函数体中定义

但是,下面的函数定义工作得很好,我不太清楚为什么数组参数会自动分解为下面的元素,而在上面的情况下却不是这样

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'