我会在浏览器中测试一下
let foo = () => ({ bar: 2 })
但是偶然输入了
let foo = () => { bar: 2}
为什么没有抛出错误?
答案 0 :(得分:3)
在第二种情况下,bar
是一个标签。请参阅:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/label
“2
”本身就是一个有效的陈述。
答案 1 :(得分:0)
这是基本语法:
() => { statements }
高级:
// Parenthesize the body of function to return an object literal expression:
params => ({foo: bar})
答案 2 :(得分:0)
这两种语法是正确的,但它们没有定义相同的功能。
function foo1() {
return {bar: 2};
}
function foo2() {
bar: 2;
}
答案 3 :(得分:0)
取决于什么是酒吧。如果是一个标签,那就是对象的关键。 但是如果它是一个变量,那个语法就不会起作用。
好奇心灵的一些额外语法如下所示: -
let foo = () => ({ bar: 2}); //works. object is returned
//let foo = () => ({ 'bar': 2}); //works. object is returned
//let foo = () => { let bar = 2; return bar; }; //works
//let foo = (() => { let bar = 2; return bar; }); //works
//let foo = (() => { let bar = 2; return bar}); //works
//let foo = () => ({ let bar = 2; return bar; }); //WONT work
//let foo = (p1=3) => p1 ; //works
let foo = () => 1; //works
console.log(foo());