ある日のパイセン、「こんな変数宣言は、嫌だ。どんなの?」
なんだ?
パイセンは最近、大喜利にハマっているのか?もしや、新たなレビュー方法…?
評価に関わるかもしれないな
よし、受けて立とうじゃないか!
シンプルにvar
var notCoke = 'Pepsi'
var
は嫌だろう!
どれくらい嫌かって?
炭酸が抜けたコークや
BBQで、もはやあたたかさを帯びたビールくらい嫌だね!
var
が何で嫌か?まあ、こんなところかな!
- 巻き上げられて、エラーがでない
- 再宣言ができてしまう
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