コードの一部をリントしていて、ドット表記を使用する方がよいというエラーが返されました。角括弧表記を使用していることがわかりました(このすばらしい投稿からわかりやすくなっています)が、Crockfordがドット表記を好む理由を正確に尋ねたいと思いました。私が取り組んでいるプロジェクトは、その実体のためにSBNを使用しており、混乱したり読めなくなったりすることはないと思いますが、ユーザードットに明確な理由がある場合は、修正します。
先に進む前に、それを完全に理解したいだけです!
コードの一部をリントしていて、ドット表記を使用する方がよいというエラーが返されました。角括弧表記を使用していることがわかりました(このすばらしい投稿からわかりやすくなっています)が、Crockfordがドット表記を好む理由を正確に尋ねたいと思いました。私が取り組んでいるプロジェクトは、その実体のためにSBNを使用しており、混乱したり読めなくなったりすることはないと思いますが、ユーザードットに明確な理由がある場合は、修正します。
先に進む前に、それを完全に理解したいだけです!
私がCrockfordを最もよく理解しているので、それは一貫性と予約語の使用を避けることに帰着すると思います。彼のサイトで、彼は次のように述べています。
ドット表記は、添え字が有効な識別子の形式の文字列定数である場合に使用できます。言語定義に誤りがあるため、予約語はドット表記では使用できませんが、添え字表記では使用できます。
予約語は添え字表記で参照できるため、混乱を招く可能性があります。基本的に、オブジェクトのメンバーの名前として予約語を使用することは避けてください。ドット表記はこれを強制します(言語を介して-Crockfordがそれを呼び出すときのエラー)。したがって、予約語の使用を避けるためのより良いコーディング方法と見なされます。
また、同じサイトで、ドット表記の方が「もう少し便利」だとも述べています。
配列要素をオブジェクトのプロパティと区別し、コードの混乱を少なくすることだと思います。
例:
var x = [];
x.push(stuff);
これx[0]
が私たちがそれにアクセスする方法です。
var y = { foo: "bar" };
y['foo']
同様に機能しますが、それがオブジェクトyのプロパティであり、配列yの要素ではないy.foo
ことを明確にするために、オブジェクトにドット表記を使用できます。foo