Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

分割代入では変数を捨てる事もできる

実際のところ

mozillaJavascriptに関するURLをパースするケースを考えます。

var url = "https://developer.mozilla.org/en-US/Web/JavaScript";

var parsedURL = /^(\w+)\:\/\/([^\/]+)\/(.*)$/.exec(url);
console.log(parsedURL)
/*
[ 'https://developer.mozilla.org/en-US/Web/JavaScript',
  'https',
  'developer.mozilla.org',
  'en-US/Web/JavaScript',
  index: 0,
  input: 'https://developer.mozilla.org/en-US/Web/JavaScript' ]
*/

ここのRegex#execは結果として配列っぽいものを寄越してきます。

分割代入を知らなければ、こんな感じで書く所ですが

const protocol = parsedURL[1], fullhost = parsedURL[2], fullpath = parsedURL[3];

分割代入を知っていると、幾らか短く書くことができます。
例のごとくletは使えないので使いドコロは限られるかも知れません。

const [, protocol, fullhost, fullpath] = parsedURL;
console.log(protocol); 
//> "https"