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