为什么JSLint比Square Bracket更喜欢点符号?

时间:2012-11-07 13:48:40

标签: javascript jquery jslint

我一直在发现我的一些代码,并且回到了一些错误,说使用点表示法更好。我发现我使用方括号表示法(with clarity from this great post),但是,我想问为什么Crockford更喜欢点符号?我正在研究的项目已经使用了SBN,因为它很有用,而且我认为它不会让人感到困惑或不可读,但如果用户点有明显的原因,我会纠正它。

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

4 个答案:

答案 0 :(得分:15)

我最了解Crockford,我认为这取决于一致性并避免使用保留字。在他的site,他说:

  

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

由于您可以在下标表示法中引用保留字,因此可能会引起混淆。基本上,避免使用保留字作为对象成员的名称。点符号强制执行此操作(通过语言 - Crockford称之为错误),因此将其视为更好的编码习惯,以避免使用保留字。

同样在同一网站上,他还指出点符号“更方便”。

答案 1 :(得分:9)

来自“JavaScript:好的部分”,它说on page 21

  

。符号是首选,因为它更紧凑,读得更好。

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

答案 2 :(得分:3)

  

两种语法都没有问题,两者都适用于所有环境。但是,尽可能使用点表示法,每次可以保存三个字符。

Source

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

答案 3 :(得分:2)

我相信它是将数组元素与对象属性区分开来,并减少令人困惑的代码。

例如:

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

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

var y = { foo: "bar" };

y['foo']以及y.foo工作,但要明确foo是对象的属性不是元素在数组y 中,我们可以对对象使用点表示法。

相关问题