这个奇怪的 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 语法并不禁止(不幸的是)。
看这张截图:
我首先犯了一个错误。我知道箭头函数可以在不使用“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 语法并不禁止(不幸的是)。