【发布时间】:2014-10-07 05:34:04
【问题描述】:
我正在阅读Eloquent Javascript,我对这段话和花括号的用法有疑问:
这意味着花括号在 JavaScript 中有两种含义。在语句的开头,它们开始一个语句块。在任何其他位置,它们都描述了一个对象。幸运的是,以花括号对象开头的语句几乎没有用处,而且在典型的程序中,这两种用法之间没有歧义。
这段话:
类型对象的值是属性的任意集合,并且 我们可以随意添加或删除这些属性。一种创建方式 一个对象是通过使用花括号表示法。
var journal = [
{events: ["work", "touched tree", "pizza",
"running", "television"],
squirrel: false},
{events: ["work", "ice cream", "cauliflower",
"lasagna", "touched tree", "brushed teeth"],
squirrel: false},
{events: ["weekend", "cycling", "break",
"peanuts", "beer"],
squirrel: true},
/* and so on... */
];
上面的代码看起来像是一堆属性和它们的数组值。括号在做什么?他们似乎将每个属性分组为数组值和布尔值。那是花括号在做什么吗?根据定义,它们是在开始一个语句块还是在描述一个对象?用大括号描述一个对象是什么意思? javascript 中的对象是否只是属性的集合,其中 1 足以使其成为对象?
【问题讨论】:
-
可以这样想:方括号用于表示数组,花括号用于表示键值映射。
-
如今,在块周围使用它们会很有用,因为函数的块级范围已成为大多数浏览器的默认设置。例如:(function(){ 'use strict';{ function f3(){} } alert(typeof f3 === "undefined");}());
-
为什么我被否决了?我意识到我是社区的新手,但我认为仅仅因为一个问题很简单并不一定意味着它值得一票否决。