Ven*_*sky 0 javascript ecmascript-6 arrow-functions
我只是遇到了一些代码,然后我做了一个测试,发现了一些我不明白的东西。
hey(
() => {},
() => {
foo: "bar";
}
);
Run Code Online (Sandbox Code Playgroud)
为什么以下语法是有效的语法?在第一个参数中,我可以理解,因为它是一个空函数作用域,但是在第二个参数中,它如何不给我一个错误?
如果它返回一个对象,它应该在最后({...})接受并且不接受;,所以这意味着第二个参数不是一个对象。
如果它不是一个对象,它是什么?为什么不是语法错误?
这里发生了什么黑色的javascript魔术?
这是关于codesanbox的示例,它不会给我任何语法错误。
我刚刚发现了一些其他奇怪的东西。
hey(
() => {},
() => {
"bar"; // without foo:
}
);
Run Code Online (Sandbox Code Playgroud)
这怎么不给任何错误?
如果跳过(),则将其解释为带标签的语句
() => {
foo: "bar";
}Run Code Online (Sandbox Code Playgroud)
如果添加另一个属性,您可以清楚地看到错误
() => {
foo: "bar",
baz: ''
}Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
57 次 |
| 最近记录: |