Javascript 这是一个有效的箭头函数吗?
这个问题来自一个在线测验,我被它弄糊涂了。我觉得这是第三个,但我没有定义 如果在外部范围中定义了c,则哪个选项是箭头函数的示例Javascript 这是一个有效的箭头函数吗?,javascript,Javascript,这个问题来自一个在线测验,我被它弄糊涂了。我觉得这是第三个,但我没有定义 如果在外部范围中定义了c,则哪个选项是箭头函数的示例 a,b =>c; {a,b} => c; (a,b) =>c; //this one. a,b => {return c;} 这个问题主要是关于语法的。第三个选项确实是正确的选择,因为函数参数a和b必须用括号括起来(
a,b =>c;
{a,b} => c;
(a,b) =>c; //this one.
a,b => {return c;}
这个问题主要是关于语法的。第三个选项确实是正确的选择,因为函数参数
a
和b
必须用括号括起来(
和)
因为必须首先定义c
,所以会得到undefined
var c='foo';//在外部范围中定义c
变量f=(a,b)=>c;//定义箭头函数
var结果=f(1,2);//使用一些参数调用arrow函数
console.log(结果);//检查输出是否为“foo”,c的值只有第二个具有无效语法
第一个和最后一个也是有效的,并且使用逗号运算符,箭头函数是右边的操作数。如果a
不是已定义的变量,则仍会出现运行时错误,但一旦定义了,它就有效:
让a;//定义
a、 b=>c;//有效的
a、 b=>{return c;}//有效
控制台日志(“ok”)代码>是的,第三个。在浏览器中尝试这些示例时发生了什么?请注意,只有第二个示例的语法无效。第一个和最后一个是有效的,并使用逗号运算符,箭头函数是右边的操作数。捕捉得非常好。:)逗号运算符的使用似乎确实是一个有效的场景,但对于针对初级JavaScript开发人员的JavaScript测试来说,这也是一个相当奇特的场景。:)关于c
,问题已经说明绑定是在外部范围中定义的。然而,a的情况并非如此的确如果箭头函数只有一个参数,则在其周围加括号是可选的。如果箭头函数有两个或多个参数,或者根本没有参数,则需要使用括号。