あしあと

明日の自分への情報発信

Javascript 学習(3日目) 及びLinuxの学習(1日目)

 今日も引き続きjavascriptを勉強していく(下書き保存のまま公開してなかったので1/4投稿になってしまっているが実際は1/3の勉強分である)。また、今すぐ必要ではない知識が多いと判断して基本情報技術者テキストの勉強を中断し、Linuxを勉強していく。

 

 

関数

関数(かんすう)とは、「いくつかの処理をまとめたもの」である。

以下の画像では関数はfunction()で表し、後ろの中括弧{}にまとめたい要素を入力することで関数を定義できる。

f:id:keropp1234:20200103085639p:plain

 

関数だけでは処理できないため、定数()と入力することで実行できる。

これを関数を呼び出すという。関数と定数の関係のイメージは以下の通り。

f:id:keropp1234:20200103090519p:plain

 

「function()」の部分を「()=>」としても、同じように関数を定義することができる。これはES6から導入された新しい書き方で、アロー関数と言う。

コーディングスピードがあがるので基本的にこれを用いる。

f:id:keropp1234:20200103090954p:plain

 

引数とは

引数とは関数に与える追加情報のようなもので、()=>の()内に入力された情報がそれである。

f:id:keropp1234:20200103091619p:plain

引数は定数や変数と同じように使うことができ、下の画像では呼び出しを2パターン行うことで二つの関数が処理されている。

ちなみに名前を入力するときは${name}を用いる。さらに「私は〜です」を`(バッククオート)で囲うことで出力が途切れることなくひとまとめに出来る。つまり、+演算子 を使わずに文字列を繋げていくことができる。

これはES6から使えるようになったテンプレートリテラルの一つである。詳細はリンクを参照。JavaScript の テンプレートリテラル を極める! - Qiita

f:id:keropp1234:20200103091834p:plain

 

複数の引数を受け取る関数の呼び出し

引数は,(カンマ)を用いることで複数入力できる。それにより、その複数の引数を持った関数の実行も能になる。()内の因数はそれぞれ第1引数、第2引数という。

f:id:keropp1234:20200103094143p:plain

 

戻り値

戻り値とは関数の処理結果を呼び出し元(introduce()のようなやつ)で受け取ることで、その処理結果を戻り値という。このことを「関数が戻り値を返す」と言う。

関数処理の中でreturnを使うと、呼び出し元(リターン)で受け取れるようになる。return 値」と書くことで、関数はその値を戻り値として返す。

f:id:keropp1234:20200103110005p:plain


呼び出した関数に戻り値があった場合、その関数は戻り値のものになる

下の画像ではconst sumでadd(1, 3)を呼び出しているが、戻り値4として出力されている。つまり、( a, b)が関数内でa+bとして処理され、それを(a, b)に返却している、ということである。そうすることで呼び出されたadd(1,3)は4として出力される。f:id:keropp1234:20200103110247p:plain

 

戻り値と真偽値

if文で使うような条件式を処理部分に入力すると、結果を真偽値(true or false)として返すことができる。

f:id:keropp1234:20200103111728p:plain

 

なおif文から関数の呼び出しを行う場合は下の画像のようにif(条件式)の中に関数の定数checkと引数(123)を入力する。

f:id:keropp1234:20200103112925p:plain

 

returnは処理を終了させる性質を持つ。

return文の後にある処理は実行されなくなる。

f:id:keropp1234:20200103112154p:plain

 

スコープ

{}で括るとその中はスコープと呼ばれる領域になる。そのスコープの中で定義された定数や変数は、その中でしか使うことができない。

f:id:keropp1234:20200103120455p:plain

 

一方、スコープの外で定義された定数や変数はスコープの内外で使用することができる。

f:id:keropp1234:20200103120731p:plain

 

これは関数だけでなく、ifやswitchなどの条件文、forやwhileなどの繰り返し文などの、中括弧「{}」を使う構文はいずれもスコープを作る。中括弧=スコープを作ると思っておけば良い。

f:id:keropp1234:20200103120902p:plain

 

以下実例。introduce()の呼び出しでは関数スコープ内のconsole.log処理が出力されているが、スコープ外のconsole部分ではスコープ外の定数name=にんじゃわんこが出力されている。

f:id:keropp1234:20200103121425p:plain

 

getMax関数を作って出力しよう。

getMax関数は引数のなかで最大値を戻り値とする。

f:id:keropp1234:20200103125124p:plain

以下実践。

f:id:keropp1234:20200103125344p:plain

本日のjavascriptの学習は終了。ここで一言。

ちゃんとコーディングしたのに思ったように動かないとき、小難しいことを考える前に、スペルミスやコロンやセミコロン、中括弧等、打ち間違い、打ち忘れがないかを確信が持てるまで確認しろ!!

 

基本情報技術者の学習はあまりにも広く、今は遠回りになると判断してLinuxの勉強からやることにした(Web周りの基礎は別個やる)。学習教材はLinux標準教科書をもちいる。

以下Linuxの学習

 

基本ソフトウェア:windowsmac OS
応用ソフトウェア:wordやExcel

Linuxの誕生経緯
ライセンス契約に縛られたUnix(インターネットに強いのが特徴)を多くの人が扱えるように作られた、独自のUnix互換性OSがLinux

基本ソフトウェアはカーネルユーザランドにわかれる。

 

カーネル:OSの中核となるソフトウェア。ハードウェアと直接やりとりをし、最も中心的な役割を担う。カーネルはプログラムの違いを吸収し、どのようなハードウェアでもソフトウェアが動くようにする役割がある。

 

ユーザランド:OSが動くのに必要なカーネル以外の部分。ファイルシステムやファイル操作コマンドなど。􏰴􏳌􏱒􏱨􏰟􏷡􏰘􏶛􏰖􏵚􏵭􏰢􏴦􏴣􏰢􏰹􏰺􏰾􏱦􏰯􏳮􏵱􏰚􏰖􏴊􏱬􏲰􏶅􏳞􏳮􏵱􏰚􏰖􏵢􏲝􏴇 􏴈􏰞􏴉􏰟􏴊􏳯􏰖􏱨􏲷􏰢􏵶􏱴􏰼􏱨􏳭􏳮􏲉􏲺􏳯􏰙􏷪􏰤􏳠

 

f:id:keropp1234:20200103180733p:plain

ディストリビュート(分配):初期のLinuxはコンピュータスキルの高い人間しかインストールできなかったため、それをまとめ上げて誰でも使えるようにした人たち。