ひよっこPGのブログ

主に、技術メモや英語たまにギター関連のことも書いているブログです。

ドット記法とブラケット記法について

言語は、JavaScriptです。
オブジェクトにプロパティを設定、取得する方法は二つあるみたいです。
それがタイトルの
ドット記法 と ブラケット記法

ドット記法

通常こちらを使用する方が多いと思います。

ドット記法で、オブジェクトのプロパティを設定する例。

var obj = new Object();

//ドット記法でプロパティを設定
obj.hoge = "hoge";
//ドット記法でプロパティを取得
console.log(obj.hoge);

文字どおり、.(ドット)を使って
プロパティを操作しています。
たいがいは、ドット記法を使用すると思います。

ブラケット記法

ブラケット [ ]を意味します。

参考
かっこ【括弧】の意味 - 国語辞書 - goo辞書

こちらは、連想配列のような感じで記述します。

var obj = new Object();

//ブラケット記法でプロパティを設定
obj['fuga'] = "fuga";
//ブラケット記法でプロパティを取得
console.log(obj['fuga']);

こちらも文字どおり、 [](ブラケット)を使って
プロパティを操作しています。

上記二つのサンプルソース。
Edit fiddle - JSFiddle

違いは?

ドット記法

  • 分かりやすい、記述の容易。

ブラケット記法

  • プロパティ名に文字列変数を使うことが出来る。
var obj = new Object();
obj['hoge'] = "hogeマンだー!";

// プロパティ名の文字列
var string = "hoge";
// ブプロパティ名に変数を使ってログ出力。
console.log(obj[string]);

// ドット記法では、プロパティ名に変数を使うことは出来ない。
var test = 'obj.' + string;
console.log(test);

Edit fiddle - JSFiddle

  • 不正なプロパティ名でもアクセスすることが出来る。
var obj = new Object();

// 数値から始まる不正なプロパティ名
obj['123'] = 123; 
// JavaScriptの予約語であるclassを使う不正なプロパティ名
obj['class'] = "class";
console.log(obj['123']);
console.log(obj['class']);

/* ドット記法では、不正なプロパティにアクセスするとエラーになる。
obj.123 = 123;
obj.class = "class";

console.log(obj.123);
console.log(obj.class);
*/

Edit fiddle - JSFiddle
ドット記法とブラケット記法のまとめ。

プロパティ名に変数を使える 不正なプロパティ名が使える
ドット記法
×
×
ブラケット記法

参考

開眼!  JavaScript ―言語仕様から学ぶJavaScriptの本質

開眼! JavaScript ―言語仕様から学ぶJavaScriptの本質

何か間違いがありましたら、コメントで教えてくれるとうれしいです^ー^