質問: JavaScriptでオブジェクトのプロパティにアクセスするとき、 1オブジェクト名.プロパティ名 2オブジェクト名['プロパティ名'] があると思うのですが、使い分けるのに何か違いがあるのでしょうか?調べても2通りあるということまでしか書かれていないので、初学者の質問ですがどなたか教えていただけると幸いです。
回答: 基本的な機能は両者で違いはありません。 しかし、下記のような違いがあります。 ドット記法 ===== * 数値やシンボルを添え字として使うことができない。文字列限定 * エディタによっては、添え字にコード補完が効いてくれる(.を打った時に、プロパティ候補が列挙される、など) * 上記と併せて、プロパティの存在を保証を比較的とりやすい。 ブラケット記法 ======= * 添え字に数値やシンボルを使うことが可能 (特にシンボルは、プライベートフィールド的な宣言も可能にさせやすい) * 取得プロパティを動的にさせやすい * 上記のことと併せて、存在保証がないプロパティにアクセスしやすいので、存在保証はしっかりする必要がある * エディタでのコード補完は基本的に効かない 他にも違いがありますが、ここまでにしておきます。 特に、ブラケット記法は、**取得プロパティを動的にさせやすい**のが最大の特徴と言えるでしょう。 なので、より動的な、柔軟な記述も可能になります。 (ただし、値保証をしていくのもかなり大事なので、注意) 使い分け的には、 これは案件によったり、人にもよりますが、 基本はドット記法、プロパティの動的取得や、数値やシンボルを添え字にしたい時はブラケット記法、といった使い分けがいいのではないでしょうか?