为什么 js 在像 '{}[0]' 这样的语句中忽略 '{}'

Why js ignores '{}' in statements like '{}[0]'?

本文关键字:语句 在像 js 为什么      更新时间:2023-09-26

谁能解释一下为什么并描述JavaScript如何转换语句,比如

{}[0]   => [0]
{}.2    => 0.2
{}'foo' => 'foo'

好吧,在您的情况下,{}不是对象文字,而只是空块。您可以在任何地方使用代码块来提高可读性。此外,此类块在使用标签时也很有用。

label: {
  // some code
}

还记得if病情后的花括号吗?它们也是代码块。

代码中的{}只是创建一个空对象,但不使用它执行任何操作。紧跟在它后面的部分被视为单独的语句。

例如:

{}var foo = 1;

这将创建一个foo变量,1为其分配值。解析{}并创建一个空对象,但它没有任何反应,因为我们没有对它做任何事情。{}也可能完全处于不同的行上:

{}
var foo = 1;

因此,在您提供的三个示例中:

{}    => Object {}      // Creates empty object but does nothing with it.
[0]   => [0]            // As expected.
{}    => Object {}      // Creates empty object but does nothing with it.
.2    => 0.2            // As expected.
{}    => Object {}      // Creates empty object but does nothing with it.
'foo' => 'foo'          // As expected.