这个奇怪的 Javascript 语句 "a:3;" 是什么,它有什么作用?

What is this strange Javascript statement "a:3;" and what does it do?

看这张截图:

我首先犯了一个错误。我知道箭头函数可以在不使用“return”关键字的情况下 return 一个值,例如 f=()=>3。我想我可以使用这种紧凑的语法来 return 一个对象,比如 f=()=>{a:3}。经过尝试,我意识到在这种情况下“{a:3}”被解释为函数体,而不是对象字面量。进一步尝试 f=()=>{a:3; return 'three'} 证实了这一点:JS 将 {} 内的内容解释为函数体,而“a:3”不是 属性 而是一个语句。

那么我的问题是:

a:3;是什么说法?这是什么语法?它有什么作用?我找不到任何关于它的参考。很奇怪...

这是一个 label 后跟一个未使用的表达式。

f=()=>{
  a: // label
  3 // expression
}

标签在这种情况下没有任何意义,但 JS 语法并不禁止(不幸的是)。