javascript Symbolの使い方
- 2020.09.25
- javascript
- javascript

javascriptで、ES6で追加された新しいプリミティブ型であるSymbolの簡単な使い方を記述してます。
環境
- OS windows10 pro 64bit
- Apache 2.4.43
- ブラウザ chrome 84.0.4147.105
Symbolの使い方
まずは、type ofで、Symbolのデータ型を確認してみます。
1 2 |
const hoge = Symbol(); console.log(typeof hoge); |
実行結果は「symbol」となります。

Symbolは、同じ名前で利用しても、毎回新しいオブジェクトを生成するため、必ずユニークとなります。
1 2 3 |
const sym1 = Symbol("hoge"); const sym2 = Symbol("hoge"); console.log(sym1 === sym2); // false |
コンソールに出力すると、まったく同じにように見えます。
1 2 3 4 5 |
const sym1 = Symbol("hoge"); const sym2 = Symbol("hoge"); console.log(sym1); console.log(sym2); |
実行結果

また、Symbolは、オブジェクトのプロパティとしても利用できます。
1 2 3 4 5 6 |
const hoge = Symbol(); const obj = { [hoge]:"hoge" }; console.log(obj[hoge]); //hoge |
ただし、getOwnPropertyNamesで取得しても、表示されません。
1 2 3 4 5 6 7 8 9 |
const hoge = Symbol("hogehoge"); const obj = { foo:"foo", [hoge]:"hoge", bar:"bar", }; console.log(Object.getOwnPropertySymbols( obj )); |
実行結果

symbolのプロパティを取得する場合は、以下となります。
1 2 3 4 5 6 7 8 9 |
const hoge = Symbol("hogehoge"); const obj = { foo:"foo", [hoge]:"hoge", bar:"bar", }; console.log(Object.getOwnPropertySymbols( obj )); |
実行結果

-
前の記事
javascript URLをエンコードする 2020.09.25
-
次の記事
Ruby on Rails scaffoldを使用してCRUDを作成する 2020.09.25
コメントを書く