びぼーろくっ!

誰かに見せるわけでもないけど、備忘録として。。

JavaScriptのES6で登場した{並括弧}をつかって代入(const {foo} = this)

なんか当たり前に覚えていたけど、それといった文献を見当たらなかったし
そもそも記号の検索って難しいので書きました。

日本語ですら記号の読み方が曖昧だったりするのに更に日本語のサイトがないとね・・・
初心者には厳しい時代になってきました。。

さて、掲題です。
ES6だとこのような記述が多く見られます。

import express from 'express';
import {readFileSync} from 'fs';

これ!なんで命名された変数を囲ってるの!
オブジェクト?オブジェクトなのかっ!?
って最初思って意味不明でした。。

なんとなく直感的に分かったのですが、慣れるまで時間が掛かりました。
以下のような感じがわかりやすいかと思います。

      const test = {foo:'foo',bar: 'bar'};
      console.log(test); //そのままobjectが出力されます。
      
      //今までのやり方
      const foo = test.foo;
      console.log(foo);
    
      const {bar} = test; //testObjectのbarのみを取り出す
      console.log(bar);
//出力結果
{ foo: 'foo', bar: 'bar' }
foo
bar


こうやって簡単にすると分かり易いですね。
ちなみにこれ、import文でも可能ですし、関数でも可能です。

import {readFileSync} from 'fs';

const data = readFileSync('path');

上記のこの1行はreadFileSyncのみ使用可能にするということですね。

追伸:いい加減Expressのドキュメント覚えないとダメな気がしてきた。。。
何でも出来ちゃう反面、ちゃんと覚えないと効率が悪い。。。