我一直在发现我的一些代码,并且回到了一些错误,说使用点表示法更好。我发现我使用方括号表示法(with clarity from this great post),但是,我想问为什么Crockford更喜欢点符号?我正在研究的项目已经使用了SBN,因为它很有用,而且我认为它不会让人感到困惑或不可读,但如果用户点有明显的原因,我会纠正它。
只是想在继续之前完全理解它!
答案 0 :(得分:15)
我最了解Crockford,我认为这取决于一致性并避免使用保留字。在他的site,他说:
当下标是字符串常量时,可以使用点表示法 以合法标识符的形式。由于语言错误 定义,保留字不能用于点符号,但是 它们可以用在下标符号中。
由于您可以在下标表示法中引用保留字,因此可能会引起混淆。基本上,避免使用保留字作为对象成员的名称。点符号强制执行此操作(通过语言 - Crockford称之为错误),因此将其视为更好的编码习惯,以避免使用保留字。
同样在同一网站上,他还指出点符号“更方便”。
答案 1 :(得分:9)
答案 2 :(得分:3)
两种语法都没有问题,两者都适用于所有环境。但是,尽可能使用点表示法,每次可以保存三个字符。
重要的是要记住JSLint标准完全基于意见。大多数人通常都是流行的观点,但有些是有争议的。话虽如此,我更喜欢JSHint而不是允许你关闭任何你不同意的选项。
答案 3 :(得分:2)
我相信它是将数组元素与对象属性区分开来,并减少令人困惑的代码。
例如:
var x = [];
x.push(stuff);
此处x[0]
是我们访问它的方式。
var y = { foo: "bar" };
y['foo']
以及y.foo
工作,但要明确foo
是对象的属性而不是元素在数组y 中,我们可以对对象使用点表示法。