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 什么是“函数f(a={}={}={}}{}”_Javascript_Syntax - Fatal编程技术网

Javascript 什么是“函数f(a={}={}={}}{}”

Javascript 什么是“函数f(a={}={}={}}{}”,javascript,syntax,Javascript,Syntax,它不会抛出语法错误。什么意思?的默认值是空对象 f(); function f(a = {} = {} = {}) { console.log(a); } 输出: Object {} 的默认值为空对象 f(); function f(a = {} = {} = {}) { console.log(a); } 输出: Object {} 这是一个使用and的函数 首先要注意的是: {x} = {x:1, y:2} 将x设置为1时,将计算为{x:1,y:2} 记住这

它不会抛出语法错误。什么意思?

的默认值是空对象

f();

function f(a = {} = {} = {}) 
{
    console.log(a);
}
输出:

Object {}

的默认值为空对象

f();

function f(a = {} = {} = {}) 
{
    console.log(a);
}
输出:

Object {}

这是一个使用and的函数

首先要注意的是:

{x} = {x:1, y:2}
将x设置为1时,将计算为{x:1,y:2}

记住这一点,函数按以下顺序执行操作,=左侧的每个{}都是解构语法:

f(a = ({} = ({} = {})))
上面,我们首先执行最内部的{}={}。此语法正在解构空{}对象,因此不初始化任何变量,它所做的只是计算为空对象{}。现在已经对其进行了计算,您可以对下一组括号再次执行{}={}。这同样只是计算为{}

现在已经对其进行了计算,您可以通过计算设置a={},这将设置a的默认参数

通过为最右边的对象指定一些属性,然后对这些属性进行分解,您可以更好地看到这一点:

函数fa={z}={x,y}={x:1,y:2,z:3}{ console.loga,x,y,z; }
f 这是一个使用and的函数

首先要注意的是:

{x} = {x:1, y:2}
将x设置为1时,将计算为{x:1,y:2}

记住这一点,函数按以下顺序执行操作,=左侧的每个{}都是解构语法:

f(a = ({} = ({} = {})))
上面,我们首先执行最内部的{}={}。此语法正在解构空{}对象,因此不初始化任何变量,它所做的只是计算为空对象{}。现在已经对其进行了计算,您可以对下一组括号再次执行{}={}。这同样只是计算为{}

现在已经对其进行了计算,您可以通过计算设置a={},这将设置a的默认参数

通过为最右边的对象指定一些属性,然后对这些属性进行分解,您可以更好地看到这一点:

函数fa={z}={x,y}={x:1,y:2,z:3}{ console.loga,x,y,z; } F