🎤

「こんな変数宣言は、嫌だ。どんなの?」: JS

2021/10/18に公開

ある日のパイセン、「こんな変数宣言は、嫌だ。どんなの?」

なんだ?
パイセンは最近、大喜利にハマっているのか?

もしや、新たなレビュー方法…?
評価に関わるかもしれないな
よし、受けて立とうじゃないか!

シンプルにvar

var notCoke = 'Pepsi'

varは嫌だろう!
どれくらい嫌かって?

炭酸が抜けたコークや
BBQで、もはやあたたかさを帯びたビールくらい嫌だね!

varが何で嫌か?まあ、こんなところかな!

  1. 巻き上げられて、エラーがでない
  2. 再宣言ができてしまう
console.log(notCoke) // undefined (巻き上げられて、エラーがでない)

var notCoke = 'Pepsi'

var notCoke = 'Dr.Pepper' // 再宣言ができてしまう

まあこんなことを抜きにしても、varを見たら
「え、古っ!」って思うようにはなってしまっているな…

なんか、varからは、おじいちゃんおばあちゃんの家と同じようなニオイがするんだよ

話は逸れるが、あのニオイの正体は一体何なんだい?

再代入しないのにlet

function getKingOfPizza() {
  let kingOfPizza = 'Cuatro Formage' // 4種のチーズピザ、あれ最高だよな!
  return kingOfPizza
}

宣言したkingOfPizzaをそのままreturnしているな!

別に動きはするからいいのかもしれないが
もちろん再代入しないならconstにしてほしいさ!

そうしたら、コードを最後まで見なくても
kingOfPizzaは再代入されないことがわかるからな!

積み上がったconst

テトリスって知ってるかい?
そうだ、ブロックが積まれて、横一列になったら消せる、あのゲームだ

JSを書いていて、こんな感じでconstが積まれた状況に遭遇したことはないかい?

const hamberger = 'Cheese Berger'
const sideMenu  = 'French Fries'
const drink = 'Coke'

もちろん変数宣言は必要だ
処理によっては、たくさん宣言することになるだろう
(人類も平和を守るためにあらゆる宣言を出してきたからな!)

でも、たくさん宣言されると何がなんだかわからなくなるのは、ボクだけじゃないはずだ

そんなとき、ボクはテトリスを思い出すよ

分割代入をうまく使えば、積み上がったconstは消すことができる、ってね!

const [hamberger, sideMenu, drink] = ['Cheese Berger', 'French Fries', 'Coke']

console.log(hamberger) // 'Cheese Berger'

だいぶ見通しがよくなった気がしないかい?

とはいえ分割代入を、変数宣言を少ない行で書くために使うときは
意味のあるまとまりごとに変数宣言したほうがよさそうだ

どんなふうに分割代入を使うか、は
テトリスのこんな形┗┓のブロックをどう使うか、と同じように
センスが問われるところかもしれないな!

さあ、キミも参戦してくれ!

ここまで読んでくれたキミ、ありがとう!

ボクは全然優れたプログラマーではないから
たった3つしか思い浮かばなかった…!
(ウケをとれたかもわからないしね!)

パイセンからの大喜利はまだ終わりじゃない。

ぜひ、キミたちも参戦して、パイセンに
スタンディングオベーションさせる回答をしてくれよ!

こんな変数宣言は、嫌だ。どんなの?

Follow ME !!!
I'm sure to follow you back!
twitter: @marty_ojiya

Discussion