为什么 js 在像 '{}[0]' 这样的语句中忽略 '{}'
Why js ignores '{}' in statements like '{}[0]'?
谁能解释一下为什么并描述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.
相关文章:
- Javascript:If-then语句在函数中不起作用
- 为什么简单的Promise语句在浏览器中不起作用
- 如何使用console.log语句在Mocha中测试函数
- SyntaxError:'带有'语句在严格模式下无效
- if 语句在 JavaScript 上不起作用
- 识别两个文本中的单词(if 语句在 for 循环中)
- 如果 onclick 和 onselect 中的语句在 ASP.NET 不起作用
- JqueryUI,多个ID和else if 语句在可丢弃,我如何让它们工作
- 为什么模块级返回语句在 Node.js 中有效
- JavaScript: 变量赋值 in for 语句 |在前面或里面
- SELECT FROM WHERE语句在使用变量时不起作用…
- 为什么这个switch语句没有像预测的那样运行
- Do let语句在全局对象上创建属性
- return语句在JavaScript中使用而不中断函数
- 这个if语句在javaScript中是什么意思
- 为什么这个 JavaScript switch 语句(在 for 循环内)保留了上一次迭代的值
- 在像jQuery这样的CDN托管脚本上防止XSS
- 如何在像骨干提线木偶这样的单页框架中使用公共的、跨域的json数据
- 为什么 js 在像 '{}[0]' 这样的语句中忽略 '{}'
- 循环中的let语句在IE中不像预期的那样工作