📝

JavaScript 学習実施メモ1

2021/02/06に公開

初学者のメモです。間違い等ありましたらご指摘コメント待ってます。

Udemyで学習した内容とわからなかい部分を調べたものを備忘録でまとめました。
https://www.udemy.com/share/103dh4AEAYcFxRRHQF/
上の教材はとてもわかりやすく初学者でも入りやすかったです。
最後の方は、結構難しい内容も多く調べたりすることも増え、やりがいもあり大変すばらいい教材です。(案件ではございません。)

クロージャー

レキシカルスコープを参照、利用している状態
グローバルコンテキストの変数は、関数のスコープから参照できるがあくまでグローバルに置いているのでそのまま書き換えることができる。
クロージャーの場合は、レキシカルスコープ内で変数を定義することでその問題を解決できる。

スコープ

実行中のコードから式や値を参照(使用)することができる範囲

レキシカルスコープ
該当スコープの親のスコープで中で宣言されている変数や関数を参照できる。

スコープチェーン
現在のコンテキストでアクセスできる値(スコープ)への参照のチェーン

コールスタック

コールスタックとは、コンテキストの積み重ねのこと。どの関数が現在実行されているのか、その関数の中でどの関数が呼び出されたかなどを積み重ねる。

実行コンテキスト

実行コンテキストとは、あるコードが実行されたときの環境や状況を示す。
Javascriptコード実行前の場合は、コードや、グローバルオブジェクト、thisなどが該当する。
グローバルコンテキストと関数コンテキストに2種類ある。

グローバルコンテキスト:そのJavascriptファイルで記述されている実行環境。

関数コンテキスト:関数の宣言内で記述されている実行環境。

即時関数

関数の定義と同時に一回だけ実行される関数。

let a = (function() {
  let privateVal = 10;
  let publicVal = 100;
  return {
    privateVal,
  };
})();

動的型付け言語

Javascriptはこの型言語に属している。変数(letやconst)を宣言するときに型(string、number、null、undefinedなど)の宣言をしない。変数を使用する状況によって、型が変更される。

ちなみに、静的型付け言語はC言語やJavaなどがある。

比較

And条件
「&&」で表記。値にfalseyな値がないか確認する。falseyな値が見つかった時点で結果として返して、なければ最後の値を返す。

Or条件
「||」で評価。値にtruesyな値があるか確認する。Andの逆でtruesyな値があった時点で結果として返す。なければ最後の値を返す。

変数のデータ型

データ型は大きくプリミティブ型とオブジェクトが存在する。

プリミティブ型
変数には値が格納されていて一度作成した値を変更することはできない。letはあくまで再代入できるだけで、値を変更しているのではなく参照先を変更しているだけ。値はデータ(メモリ空間)に保管されていて、変数はあくまで値へ参照しているだけでその値と変数は同じデータで保管されているわけではない。

オブジェクト
変数には参照が格納されている。

1. let a = {
2.   hoge: "vhoge",
3.   props: "vprops",
4. };

という変数がある場合、aは{...}というオブジェクトへの参照が格納されているので、中身のバリュー(値)は変更することができる。(vhoge,vpropsなど)
オブジェクトは名前付きの参照(プロパティ)を管理する入れ物。

Discussion