むじんブログ ”3歩進んで2歩下がる”

37歳未経験からのエンジニア転職を目指す営業部長

学習のアウトプット(JavaScript2)

【関数】

Rubyでいうメソッド。

 

Rubyの場合

def メソッド名

処理の内容

end

 

JavaScriptの場合

function 関数名(引数) {

処理の内容

}

※引数がない場合でも()は記入が必要であることに注意。

 

例)

function sayHello(){

  console.log("こんにちは”)

}

 

sayHello()

→コンソールにこんにちはと表示される

-----------------------------------------------------------------------------------

【戻り値】

JavaScriptでは、戻り値を返すためにはreturnが必須となる。

 

-----------------------------------------------------------------------------------

【関数定義の種類】

関数宣言と関数式があり、どちらもよく使うので把握しておく必要がある。

関数式は、無名の関数を変数に代入する方式。

 

・関数宣言(上述)

function 関数名(引数) {

処理の内容

}

 

・関数式

変数 = function(引数){

処理の内容

}

 

【関数宣言と関数式の違い】

関数宣言は先に読み込まれ、関数式は記述の順番通りに読み込まれる。

例えば関数の呼び出しが関数定義より前にあった場合、

関数宣言:呼び出し可能(関数部分が先に読み込まれるため)

関数式:エラーになる(定義される前に呼び出しを行なっているため)

 

-----------------------------------------------------------------------------------

【無名関数】

関数式のfunction(引数){処理の内容}の部分。(変数=以外の部分)

関数宣言と比べ、関数名を用いずに関数定義ができるので記述がシンプルになる。

 

-----------------------------------------------------------------------------------

【即時関数】

関数自体の呼び出しを行わなくても、すぐに処理が行われる関数。

(関数を定義すると同時に実行される)

 

例)

(function countNum(num) {

  console.log(num)

})(1)

 

-----------------------------------------------------------------------------------

【アロー関数】

近年よく使われている記述の方法。

function()の部分を() =>に差し替えて記述する。

より短い記述になるというメリットがある。

 

例)

・関数式

const 変数 = function(引数){

処理の内容

}

 

・アロー関数

const 変数 = () => {

処理の内容

}

 

-----------------------------------------------------------------------------------

【関数定義の種類まとめ】

関数定義の種類 特徴
関数宣言 標準的な関数の定義。
無名関数 関数を多く使用するコードであるときに使用する。関数名の重複を避けることができる。
即時関数 流用する可能性のない関数を定義するときに使用する。別途関数を定義する手間がない。
アロー関数 無名関数または即時関数において、より省略した記述をしたい時に使用する。

 

---------------------------------------------------------------------------------

JavaScriptにおけるセミコロンについて】

変数定義の文章の最後などにセミコロンをつけて、文章の終わりであることを

示すことができる。(セミコロンは省略することも可能)

 

セミコロンは、ルール上省けるものと、そもそもつけないものがあり、

煩雑になるのでカリキュラムでは省略で統一されている。

(ただし、場合によってはつけないとエラーが出ることもある)

 

セミコロンは、必須か不要か様々な意見があり分かれているので、

どちらが正解ということではない。

 

---------------------------------------------------------------------------------

JavaScriptにおけるオブジェクトの概念】

JavaScriptでは、データや処理をまとめたものをオブジェクトと呼ぶ。

(オブジェクトの中にデータや処理が含まれている)

 

データはキーとバリューで構成されている。

キーとバリューがセットになったものをプロパティと呼ぶ。

 

例)

オブジェクト→human

データ→名前:鈴木 年齢:25歳 性別:男性(3つのプロパティ)

処理:歩く・食べる

 

つまり、オブジェクトはプロパティが集まってできている。

 

---------------------------------------------------------------------------------

【プロパティの書き方】

プロパティはハッシュで括られている。

 

変数 = {キー: バリュー}

 

例)

let human = {

  name = "Suzuki"

  age = 25

  jender = "man"

}

 

---------------------------------------------------------------------------------

【オブジェクトの値の取得】

オブジェクト名.プロパティ名で取得できる。

(プロパティ名はキーの部分になる)

 

例)

上記のhumanオブジェクトに対して

console.log(human.name)

→Suzukiが出力される

 

---------------------------------------------------------------------------------

【オブジェクトへのプロパティの追加】

・オブジェクト名.プロパティ名 = バリュー

・オブジェクト名['プロパティ名'] = バリュー

上記のどちらの記述でも追加できる。(どちらを使うべきかなどは特に言及なし)

 

---------------------------------------------------------------------------------

【プロパティの変更】

オブジェクト名.プロパティ名 = (変更したい値)

上記を記述して上書きをする。

 

---------------------------------------------------------------------------------

JavaScriptにおけるメソッド】

オブジェクトに対してある動作をさせる為の処理。

プロパティの後に、メソッド名: function(){}を用いて記述する。

 

例)

let human = {

  name = "Suzuki"

  age = 25

  jender = "man"

 

 talk: function(){

    console.log(`私の名前は${human.name}です`)

  }

 

human.talk()

→私の名前はSuzukiです

 

---------------------------------------------------------------------------------

【windowオブジェクト】

ブラウザ全ての情報を持っているオブジェクト。

ブラウザオブジェクトとも呼ばれ、ブラウザが起動するタイミングで自動的に生成される。

 

JavaScriptで予め定義されているメソッドやオブジェクトは全てwindowオブジェクトの

プロパティという扱いになる。

(その為、本来は各メソッドは頭にwindow.が付くが、省略されている)

 

---------------------------------------------------------------------------------

【documentオブジェクト】

ブラウザ上のHTMLに対して何らかの処理を行うオブジェクト。

行う処理によってプロパティやメソッドが複数ある。

 

---------------------------------------------------------------------------------

【alert()】

()の中の文字をアラート(ポップアップのようなもの)で表示させることができる。

本来はwindow.alert()だが、省略可能。

 

---------------------------------------------------------------------------------

【DOM(Document Object Model)】

HTMLを解析する仕組み。

 

HTMLをDOMで解析→CSSJavaScriptで装飾→ブラウザが受け取ってユーザーに渡す

 

HTMLは階層構造なので、DOMで解析された際も階層構造のデータとなる。

これをDOMツリーまたはドキュメントツリーと呼ぶ。

JavaScriptではDOMツリーの一部を取得し、装飾などを行うことができる。

 

---------------------------------------------------------------------------------

【DOMツリーからのHTMLの取得】

主に3つの種類(id名から取得・class名から取得・セレクタから取得)がある。

 

①document.getElementById("id名")

②document.getElemenstByClassName("class名")

③document.querySelectorAll("セレクタ名")

 

※クラスは同名で複数存在することがあるので、Elementが複数形になる。

同じクラス名を持つ要素は全て取得する。

 

セレクタ名は、最も頻繁に出てくるのは「クラス名」「id名」「HTMLタグ」であり、

それぞれ(".クラス名")、("#id名")、("タグ名")と記述する。

 

※②と③では戻り値が異なる。

②はHTML collection、③はNodeListを戻り値とし、見た目は同じようだが

この2つでは使えるメソッドが異なる。

(例えばforEach関数は後者)