我一直在检查我的一些代码并收到一些错误,说最好使用点表示法。我发现我正在使用方括号表示法(从这篇很棒的帖子中可以清楚地看到),但是,我想问一下为什么 Crockford 更喜欢点表示法?我正在做的项目已经使用 SBN 了,我不认为它令人困惑或不可读,但如果用户 dot 有明显的原因,我会更正它。
只是想在继续之前完全理解它!
我一直在检查我的一些代码并收到一些错误,说最好使用点表示法。我发现我正在使用方括号表示法(从这篇很棒的帖子中可以清楚地看到),但是,我想问一下为什么 Crockford 更喜欢点表示法?我正在做的项目已经使用 SBN 了,我不认为它令人困惑或不可读,但如果用户 dot 有明显的原因,我会更正它。
只是想在继续之前完全理解它!
根据我对 Crockford 的最了解,我认为这归结为一致性和避免使用保留字。在他的网站上,他说:
当下标是合法标识符形式的字符串常量时,可以使用点表示法。由于语言定义的错误,保留字不能用在点表示法中,但可以用在下标表示法中。
由于您可以在下标符号中引用保留字,因此可能会引起混淆。基本上,避免使用保留字作为对象成员的名称。点符号强制执行这一点(通过语言 - Crockford 称之为错误),因此避免使用保留字被认为是一种更好的编码实践。
同样在同一个网站上,他还表示点符号“更方便一点”。
我相信这是为了将数组元素与对象属性区分开来,并减少混乱的代码。
例如:
var x = [];
x.push(stuff);
这x[0]
是我们访问它的方式。
var y = { foo: "bar" };
y['foo']
和y.foo
工作一样,但要清楚这foo
是对象 y 的属性而不是数组 y 中的元素,我们可以对对象使用点表示法。