Javascript 学習(3日目) 及びLinuxの学習(1日目)
今日も引き続きjavascriptを勉強していく(下書き保存のまま公開してなかったので1/4投稿になってしまっているが実際は1/3の勉強分である)。また、今すぐ必要ではない知識が多いと判断して基本情報技術者テキストの勉強を中断し、Linuxを勉強していく。
関数
関数(かんすう)とは、「いくつかの処理をまとめたもの」である。
以下の画像では関数はfunction()で表し、後ろの中括弧{}にまとめたい要素を入力することで関数を定義できる。
関数だけでは処理できないため、定数()と入力することで実行できる。
これを関数を呼び出すという。関数と定数の関係のイメージは以下の通り。
「function()」の部分を「()=>」としても、同じように関数を定義することができる。これはES6から導入された新しい書き方で、アロー関数と言う。
コーディングスピードがあがるので基本的にこれを用いる。
引数とは
引数とは関数に与える追加情報のようなもので、()=>の()内に入力された情報がそれである。
引数は定数や変数と同じように使うことができ、下の画像では呼び出しを2パターン行うことで二つの関数が処理されている。
ちなみに名前を入力するときは${name}を用いる。さらに「私は〜です」を`(バッククオート)で囲うことで出力が途切れることなくひとまとめに出来る。つまり、+
演算子 を使わずに文字列を繋げていくことができる。
これはES6から使えるようになったテンプレートリテラルの一つである。詳細はリンクを参照。JavaScript の テンプレートリテラル を極める! - Qiita
複数の引数を受け取る関数の呼び出し
引数は,(カンマ)を用いることで複数入力できる。それにより、その複数の引数を持った関数の実行も能になる。()内の因数はそれぞれ第1引数、第2引数という。
戻り値
戻り値とは関数の処理結果を呼び出し元(introduce()のようなやつ)で受け取ることで、その処理結果を戻り値という。このことを「関数が戻り値を返す」と言う。
関数処理の中でreturnを使うと、呼び出し元(リターン)で受け取れるようになる。「return 値」と書くことで、関数はその値を戻り値として返す。
呼び出した関数に戻り値があった場合、その関数は戻り値のものになる。
下の画像ではconst sumでadd(1, 3)を呼び出しているが、戻り値4として出力されている。つまり、( a, b)が関数内でa+bとして処理され、それを(a, b)に返却している、ということである。そうすることで呼び出されたadd(1,3)は4として出力される。
戻り値と真偽値
if文で使うような条件式を処理部分に入力すると、結果を真偽値(true or false)として返すことができる。
なおif文から関数の呼び出しを行う場合は下の画像のようにif(条件式)の中に関数の定数checkと引数(123)を入力する。
returnは処理を終了させる性質を持つ。
return文の後にある処理は実行されなくなる。
スコープ
{}で括るとその中はスコープと呼ばれる領域になる。そのスコープの中で定義された定数や変数は、その中でしか使うことができない。
一方、スコープの外で定義された定数や変数はスコープの内外で使用することができる。
これは関数だけでなく、ifやswitchなどの条件文、forやwhileなどの繰り返し文などの、中括弧「{}」を使う構文はいずれもスコープを作る。中括弧=スコープを作ると思っておけば良い。
以下実例。introduce()の呼び出しでは関数スコープ内のconsole.log処理が出力されているが、スコープ外のconsole部分ではスコープ外の定数name=にんじゃわんこが出力されている。
getMax関数を作って出力しよう。
getMax関数は引数のなかで最大値を戻り値とする。
以下実践。
本日のjavascriptの学習は終了。ここで一言。
ちゃんとコーディングしたのに思ったように動かないとき、小難しいことを考える前に、スペルミスやコロンやセミコロン、中括弧等、打ち間違い、打ち忘れがないかを確信が持てるまで確認しろ!!
基本情報技術者の学習はあまりにも広く、今は遠回りになると判断してLinuxの勉強からやることにした(Web周りの基礎は別個やる)。学習教材はLinux標準教科
以下Linuxの学習
基本ソフトウェア:windowsやmac OS
応用ソフトウェア:wordやExcel
Linuxの誕生経緯
ライセンス契約に縛られたUnix(インターネットに強いのが特徴)を多くの人が扱えるように作られた、独自のUnix互換性OSがLinux
カーネル:OSの中核となるソフトウェア。ハードウェアと直接やりとりをし、最も中心的な役割を担う。カーネルはプログラムの違いを吸収し、どのようなハードウェアでもソフトウェアが動くようにする役割がある。
ユーザランド:OSが動くのに必要なカーネル以外の部分。ファイルシステムやファイル操作コマンドなど。
ディストリビュート(分配):初期のLinuxはコンピュータスキルの高い人間しかインストールできなかったため、それをまとめ上げて誰でも使えるようにした人たち。