[Javascript] 意外と知らない「分割代入」

2021年8月27日

Javascript テクノロジー

eyecatch 電化製品の生ゴミ処理機を使い始めて、劇的にゴミの量が減った事を体感した、ユゲタです。 いや〜、ゴミを毎回大量に捨てていた自分がアホみたいでしたわ! ゴミの効率化と言えば、プログラミングでも、変数のゴミという考え方があって、 無駄にいらない変数を定義していて、処理コストの無駄使いするのも嫌なのは、誰もがそう思いますし、 VScodeを使っていたら、使っていない変数は、文字色がグレー表示されて、わかりやすくはなっているので、 IDEである程度解決されるとは思いますが、 そんな変数定義について、最近よく「分割代入」というのを使うようになったんですが、 これのメリット・デメリットをよく理解したくて、ブログに備忘録しておきたいと思います。

初心者必見!Javascriptの変数定義方法いろいろ

もともと、var定義しかなかった、Javascriptの値の定義ですが、 いまでは、letもconstもあり、変数、定数(厳密には定数とは少し違いますが)といった値の定義に柔軟性が増えてきました。 もしわからないという人の為に簡単に説明をしておきます。 // 再定義=○、再代入=○ var a = 1; // 再定義=×、再代入=○ let b = 1; // 再定義=×、再代入=× const c = 1; 最近のプログラミングの動向としては、 varは、もはや使わない方が良く、 変数定義は、let 定数定義は、const を使うのがいいようです。 これらは、数値または文字列の代入ですが、それぞれ配列や連想配列(javascriptではObject)の登録もできますが、 配列を代入する時に、その配列内の値を別々の変数に代入したい場合があります。 let [a , b] = [1 , 2]; > a : 1 > b : 2 上記のように、変数a , bそれぞれに、配列の中身が別々に代入してくれます。 []の前にlet定義をすることで、a,bは、letの変数定義がされるので、複数の変数を一括で代入することができるこの「分割代入」は、 便利に使うことができるでしょう。

分割代入のメリット・デメリット

この分割代入は、関数の返り値に対して、非常に有効に使えるので、次のように使うと便利でしょう。 let [a , b] = test(); function test(){ return [1 , 2]; } > a : 1 > b : 2 関数の戻り値に関して、きちんと設計をしていることが大前提なんですが、返り値を一旦変数に入れて、それを別途定義するという面倒くさい処理を これまでやっていたかと思うと、なんともアホらしい感じです。 でも、この際に、変数の値の数と、分割代入する変数の数が違っていると、バグのもとになるので、この点注意が必要です。 let [a , b] = [1 , 2 , 3]; // 3が行方不明になります let [a , b] = [1]; // bにはundefinedが入ります。 でも、エラーになるということはないので、安心して使えるかもですね。 ※ン?こうした場合はエラーになってもらったほうがいいのか?

改めて考えてみた、効率のいい変数定義とは

変数定義は、こうするべき!という書き方をしているwebサイトもよく見かけますが、 別にvarを使ってもいいし、代入変数をしなくても全然大丈夫なんです。 letもconstも、適材適所として、プログラミングする人が、ふさわしいと思う使い方をするというので、十分でしょう。 世の中には、varは使うな!let、できれば、ほぼconstにすべし!という強い記述を見ることもありますが、 そんなんプログラマーの勝手でしょ。と思っちゃいますけどね。 人に強制するのではなく、自分の中のルールをいかに作るかが、エンジニアスキルアップとしてのポイントではないでしょうか? そんな感じで、分割変数、ユゲタは今後も便利に使い続けていくでしょう。

人気の投稿

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。

ブログ アーカイブ