今天我遇到了一个奇怪的语法问题并注意到一些奇怪的事情。这实际上编译为有效的JS:
confusing: { thisWorks: 'why?' }
它将“why”打印到控制台。
为什么会这样?
你也可以把它包装成这样的函数:
// calling myFunc() returns undefined
const myFunc = () => {
confusing: { thisWorks: 'why?' }
};
必须是我以前从未遇到的JS的一角吗?看起来像语法不正确导致的奇怪行为但同时实际上并不会导致错误?
答案 0 :(得分:1)
好。如果你能理解为什么这句话
thisWorks: 'why?'
输出'为什么?'。如果没有阅读 - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label
接下来,如果你能理解为什么这个陈述
{ thisWorks: 'why?'; }
输出'为什么?'。应该没有理由不明白为什么这个陈述
confusing: { thisWorks: 'why?' }
会回复'为什么?'。这里confusing
和thisWorks
都是标签。