javascript ドット演算子とブラケット演算子の違い
- 作成日 2020.10.11
- 更新日 2022.07.07
- javascript
- javascript
javascriptで、オブジェクトのプロパティにアクセスすることができるドット記法とブラケット記法の違いを記述してます。
環境
- OS windows10 pro 64bit
- Apache 2.4.43
- ブラウザ chrome 103.0.5060.66
ドット記法使い方
ドット記法を使用して、オブジェクトのプロパティの値を取得する場合は、以下となります。
let obj = { 'name':'hoge', 'age':35, 'tel':'090-1111-1111'};
let name = obj.name;
console.log(name); // hoge
階層がある場合は、以下のように記述します。
let obj = { 'name': { first: 'hoge', last: 'foo' }, 'age': 35, 'tel': '090-1111-1111' };
let name = obj.name.last;
console.log(name); // foo
ブラケット記法使い方
ブラケット記法を使用して、オブジェクトのプロパティの値を取得する場合は、以下となります。
let obj = { 'name':'hoge', 'age':35, 'tel':'090-1111-1111'};
let name = obj['name'];
console.log(name); // hoge
ドット記法とブラケット記法に結果の違いはありません。
また、階層がある場合は、以下のように記述します。
let obj = { 'name': { first: 'hoge', last: 'foo' }, 'age': 35, 'tel': '090-1111-1111' };
let name = obj['name']['last'];
console.log(name); // foo
ドット記法とブラケット記法の違い
ブラケット記法は、ドット記法とは違いプロパティ名に変数を利用することが可能です。
let str = 'name';
let obj = { 'name':'hoge', 'age':35, 'tel':'090-1111-1111'};
let name = obj[str];
console.log(name); // hoge
ドット記法は、変数を使用すると「undefined」になってしまいます。
let str = 'name';
let obj = { 'name':'hoge', 'age':35, 'tel':'090-1111-1111'};
let name = obj.str;
console.log(name); // undefined
また、ブラケット記法は数値や予約語などの不正な名前も、プロパティとして使用することができます。
let obj = { 'name':'hoge', 'age':35, 'tel':'090-1111-1111'};
obj[123]= 'test';
console.log(obj);
// {123: "test", name: "hoge", age: 35, tel: "090-1111-1111"}
ドット記法の場合は、SyntaxErrorとなってしまいます。
let obj = { 'name':'hoge', 'age':35, 'tel':'090-1111-1111'};
obj.123= 'test';// Uncaught SyntaxError: Unexpected number
console.log(obj);
基本的には、ドット記法が多く利用されているが、変数を利用したい場合はブラケット記法を使用することもできます。
-
前の記事
javascript newを使ってオブジェクトを生成する 2020.10.11
-
次の記事
C# textBoxのフォーカスを指定した位置に移動させる 2020.10.11
コメントを書く