Javascript 为什么js忽略了';{}';在诸如';{}[0]';?

Javascript 为什么js忽略了';{}';在诸如';{}[0]';?,javascript,Javascript,有人能解释为什么JavaScript会转换这样的语句吗 {}[0] => [0] {}.2 => 0.2 {}'foo' => 'foo' 在您的例子中,{}不是对象文本,而是空块。 您可以在任何地方使用代码块来提高可读性。此外,使用标签时,此类块也很有用 label: { // some code } 还记得if条件后的花括号吗?它们也是代码块。好吧,在你的例子中,{}不是对象文本,只是空块。 您可以在任何地方使用代码块来提高可读性。此外,使用标签时,此类块

有人能解释为什么JavaScript会转换这样的语句吗

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

在您的例子中,
{}
不是对象文本,而是空块。 您可以在任何地方使用代码块来提高可读性。此外,使用标签时,此类块也很有用

label: {
  // some code
}

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

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

label: {
  // some code
}

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

代码中的
{}
只是创建一个空对象,但不处理它。直接在后面的部分被视为单独的语句

例如:

{}var foo = 1;
这将创建一个赋值为
1
foo
变量。解析
{}
并创建一个空对象,但是它没有发生任何事情,因为我们没有对它做任何事情。
{}
也可能位于另一行:

{}
var foo = 1;
因此,在您提供的三个示例中:

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

代码中的
{}
只是创建一个空对象,但不处理它。直接在后面的部分被视为单独的语句

例如:

{}var foo = 1;
这将创建一个赋值为
1
foo
变量。解析
{}
并创建一个空对象,但是它没有发生任何事情,因为我们没有对它做任何事情。
{}
也可能位于另一行:

{}
var foo = 1;
因此,在您提供的三个示例中:

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

将它与
{console.log(“wat”)}[0]
进行比较。将它与
{console.log(“wat”)}[0]
进行比较。我不认为它是一个空对象。我相信这是代码块。因为如果它是一个对象,我应该能够这样做:{x:5}[“x”]//返回5,而它返回[“x”],但为什么它不返回
未定义的
<代码>变量a={};a['bar']//未定义
@Edwin,正如我解释的,它们是不同的语句
{x:5}
将返回
对象{x:5}
[“x”]
将返回
[“x”]
@azum这是一个完全不同的问题
a['bar']
未定义的
,因为
a
对象没有
bar
属性。我不认为它是空对象。我相信这是代码块。因为如果它是一个对象,我应该能够这样做:{x:5}[“x”]//返回5,而它返回[“x”],但为什么它不返回
未定义的
<代码>变量a={};a['bar']//未定义
@Edwin,正如我解释的,它们是不同的语句
{x:5}
将返回
对象{x:5}
[“x”]
将返回
[“x”]
@azum这是一个完全不同的问题
a['bar']
未定义的
,因为
a
对象没有
bar
属性。