15

我一直在检查我的一些代码并收到一些错误,说最好使用点表示法。我发现我正在使用方括号表示法(从这篇很棒的帖子中可以清楚地看到),但是,我想问一下为什么 Crockford 更喜欢点表示法?我正在做的项目已经使用 SBN 了,我不认为它令人困惑或不可读,但如果用户 dot 有明显的原因,我会更正它。

只是想在继续之前完全理解它!

4

4 回答 4

15

根据我对 Crockford 的最了解,我认为这归结为一致性和避免使用保留字。在他的网站上,他说:

当下标是合法标识符形式的字符串常量时,可以使用点表示法。由于语言定义的错误,保留字不能用在点表示法中,但可以用在下标表示法中。

由于您可以在下标符号中引用保留字,因此可能会引起混淆。基本上,避免使用保留字作为对象成员的名称。点符号强制执行这一点(通过语言 - Crockford 称之为错误),因此避免使用保留字被认为是一种更好的编码实践。

同样在同一个网站上,他还表示点符号“更方便一点”。

于 2012-11-07T13:53:09.230 回答
9

从“JavaScript:好的部分”第 21 页说:

这 。符号是首选,因为它更紧凑,读起来更好。

这本书是道格拉斯·克罗克福德自己写的。

于 2012-11-07T13:53:29.663 回答
3

两种语法都没有问题,并且都可以在所有环境中使用。但是,通过尽可能使用点表示法,您每次可以保存三个字符。

资源

重要的是要记住 JSLint 标准完全基于意见。大多数通常是流行的观点,但有些是有争议的。话虽如此,我更喜欢JSHint,它允许您关闭任何您不同意的选项。

于 2012-11-07T13:56:49.237 回答
2

我相信这是为了将数组元素与对象属性区分开来,并减少混乱的代码。

例如:

var x = [];
x.push(stuff);

x[0]是我们访问它的方式。

var y = { foo: "bar" };

y['foo']y.foo工作一样,但要清楚这foo对象 y 的属性不是数组 y 中的元素,我们可以对对象使用点表示法。

于 2012-11-07T13:51:17.563 回答