LoginSignup
0
0

More than 3 years have passed since last update.

しまぶーさんのモダンJavaScript講座の要約

Last updated at Posted at 2020-09-23

しまぶーさんJavaScript講座 要約

なにこれ

モダンJavaScript講座
しまぶーさんがyoutubeに投稿している動画が非常にわかりやすかったので、思い返せるために自分なりにまとめました。

JavaScript

JavaScriptさん 1995年に生まれる

ECMAScriptは、netscapeがJavaScriptを国際的な標準化団体(Ecma innternational)に提出した時に生まれた。
(豆知識:ES4以下はリリース順。ES5以上は年号表記。ES2015が正解)

ECMASCriptとは?

➡️JavaScriptの中核になる言語仕様。どの実行環境でも共通な動作のみが定義
実際はコンパイルする必要がある

ブラウザでモジュールを使うために模索した結果、コードを事前に変換が主流に

モジュールとは

ただの1つのファイル(モジュール)。相互に読み込んだりexportとimportを使用して機能をやり取りしたり、あるモジュールの関数を別のモジュールから呼び出せる。
スコープの概念あり。

Node.jsが2009年に開発。CommonJSのモジュールAPIに準拠

JavaScriptにはモジュールの仕様が複数存在してる。

パッケージとパッケージ管理システムとは

・パッケージとは
「package.json」で記述されたファイルやディレクトリ
➡️メリット
機能の細分化ができて、名前空間問題が解決できる
➡️共有したい!
・改めてパッケージとは
共有したい機能の単位

・パッケージ管理システムとは

・パッケージ管理システムがやってくれること
1.リポジトリの購読
2.パッケージのインストール・削除
3.依存関係の解決
パッケージに必要な別のパッケージを自動的にインストールできる
「package-lock.json」のこと。「node_modules」に依存関係が入ってる。
expressをインストールする時に必要な依存関係のものを一瞬でDLできる
例)jQueryUIを使うにはjQueryが必要で、先にjQueryを読まないとエラーを吐く
4.設定管理
設定書いたら1,2,3を自動で行える。手動の手間が省けてチームで環境を揃えられる

Bunbleとは

1.開発時はCommonJSモジュールで開発
2.モジュールの依存関係を解決して1ファイルに変換(これがバンドル)
3.いつも通りscriptタグで読み込む

Browserifyとは

CommonJSで書かれたものをブラウザ向けにバンドルするツール。require文を使える。そのおかげでNode.jsのパッケージが使えるようになった➡️npmが主流へ
CJS形式モジュールをバンドルするよ。

webpackが2012年に降臨爆誕

そして覇権を取る。環境最強ですね。
cjsとかブラウザで使えないファイルを何でもバンドルできるのがwebpack。
codesplittingを使ってチャンク分割している(難しいからスルー)

ESmodule降臨爆誕。

独自仕様だったので、共通の仕様が欲しかった。
んで、ES2015からJavaScriptの言語仕様としてモジュールの仕組みが導入される。
簡単に言うと、requireからimportになる。

wepack誕生までの流れまとめ

モジュールバンドラーが流行る(特にwebpack)➡️CJSやESM形式でモジュールを使ってコード掛けるから
CJS主流だったnpmクライアント開発で使える=パッケージ管理システムも使える

コンパイルとは

コンパイルを使うと

1.開発時にはブラウザで動かないけど、便利な機能を使ってコードを書ける
2.書いたコードをブラウザで動くように変換➡️いつもどおり読み込む

Babel(6to5)の誕生(元々は6to5だったけど、Babelに改名された)

wepackとbabelを一緒に使える。
元々はES2015の新機能(letとか)が使えなかったけど、babelのおかげで使えるようになった?

コンパイルの可能性

コンパイルが当たり前になって、便利なパッケージが流行りだす
React(.jsx)・Vue(.vue)・TypeScript(.ts)

モダンなJS環境になるために

コードを事前に変換が主流になった。モジュールを使えたり依存関係を解決でき、ES2015仕様が使える。パラダイムシフト

覚えるべきもの

Node.js パッケージ管理システム npm(package.json) 事前変換(Bundle, Compile)
webpack babel ES module ES2015 React Vue TypeScript

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0