こんにちは。
最近さらにJavaScriptの魅力に気が付きつつあるSarasaです。
チュートリアルやらQiitaなどの投稿サイトを見てJavaScriptを勉強していると必ずといって出てくる
「値を返す」
というワード。
どのサイトでもあまりにさらっと出てくるけど
「返すって言葉の含む領域広すぎじゃね??」
という疑問がぬぐえなかったので私なりの所感をまとめていければと思います。
「返す」と聞いてわたしが想像したもの
一言で言ってもいろんな解釈ができます。(あくまで私の感想
でも、少なくともJavaScriptでは
「何らかの仕事の処理の結果を渡すこと」
になるみたいです。
いやあわかりにくい・・
演算子「先輩!!右と左の値を足しました!!」
抽象的な話になってしまったので、
まずはめちゃくちゃ単純な足し算を例に解説していきます。
まず、
a=3
では、aという変数に3を代入しています。
つまり、
aというラベルの付いた袋の中身を3にしてあげることとイコールになります。
では、算術演算子+
を使ってa=3を表現すると、
a=1+2
代入演算子=
「おい!算術演算子!!ちゃんとaの中身持ってきたんだろうな??」
算術演算子+
「はい!1と2を連れてきましたので3という値をお返しできます!!」
というやり取り(処理)が行われていることがわかるかと思います。
「20歳未満にはお酒出さんといてください!」
また、この「返す」は条件分岐(if~else)でも使われています。
例えば居酒屋で「この客にお酒を出してよいか否か?」を判断するとします。
もちろんお酒を飲んでいいのは20歳からです。
age>=20
仮に来店客の年齢を21歳とすると、
age=21;
if(age>=20){
//酒を出す//
console.log (`20歳以上なので飲酒可能です`)
}else{
//酒は提供しない//
console.log (`20歳以下の飲酒はお断りしております`)
}
となるかと思います。
if~は式の値が真true
の場合に実行、偽false
の場合はelse以下の処理が実行されます。
つまり今回は、
新入り猫「お待たせしました!注文をお伺いいたします」
客「おう!!生ビールひとつ頼むよ!!」
新入り猫「すいませんが身分証のご提示を・・・」
客「えー今どき年齢確認ww・・まあいいけどさ」
新入り猫「ありがとうございますー(正直自分も面倒w」
(新入り猫の頭の中
「んーっと、年齢が21歳age=21
ってことはage>=20
がtrue
の値を返すから、、、if~の処理を実行!」
(お酒出しておkな感じだな
新入り猫「生ビールお待たせしました~」
~完~
「何が」「何に対して」値を返しているのか
恐らく値を返すの難しさって、この文章の中で主語「何が」と目的語「何に」が抜けていることではないでしょうか??
慣れてくると「ああ、この文脈だと多分あの関数のこと言ってるんだろうなー」みたいにさらっと流せるのかもですが、私はしばらくの間は「あれ?」と思ったら立ち止まってそれぞれの処理のつながりを言語化してみる癖をつけようと思っている所存です。
参考ページ
JavaScript初級者から中級者になろう
@uhyo_さんのサイトには大変お世話になっております・・!