今週やったこと(2/5~2/11)
今週やったこと
・演習問題を解く
・javascriptの学習
javascriptの仕組みについての学習メモ
javascriptの動く仕組みを1からUdemyでおさらいしてきました。
小さくまとめていこうと思います。
ECMAScriptとjavascriptについて
ECMAScriptとは、javascriptの言語仕様を定めたものである。
2009年に出たものがES5でそこから1年ごとにアップデートされている。
のちにES6、、、となっている。
javascriptは実行環境ごとに使える機能が異なる
ブラウザやnode.js等々で使える機能が異なっているというのは、
使用しているjavascriptエンジンやモジュールがそれぞれで異なっているということを示している。
同じブラウザでも種類によってjavascriptエンジンが異なる。
chromeはV8を使用しているが、safariやエッジは使用しているエンジンが異なったりしている。
chome→V8
safari→JavaScriptCore
エッジ→V8/Chakra
また、モジュールのブラウザやnode.jsで使っているものが異なる。
ブラウザの場合ECMAScriptで言語仕様を定められた、javascriptエンジンのほかにwebAPIが使用できるが、node.jsの場合はcommonJSやESmoduleを使用する。
![](https://assets.st-note.com/img/1707621719248-qcdQiCGU6h.png?width=1200)
ここで気になったので過去に作ったプロジェクトのモジュール設定を見てみました。(typescriptの設定値)
ts.config.jsonの中身を見てみる
nest.jsの中身
![](https://assets.st-note.com/img/1707621976596-Fr0HUJ6JHe.png)
Next.jsの中身
![](https://assets.st-note.com/img/1707622007438-ZAKbppUR9k.png)
今回見るポイントは"target"、"lib"、"module"の部分になります。
target→コンパイル時に適応するバージョンを指定する。
※デフォルトはes3
lib→コンパイル時にtargetで指定しているバージョンに含まれていないが、コンパイル時に使用したいライブラリを指定する。
※基本使用しなくてもいい
module→出力されたjavascriptが使用するモジュールを指定する。
フロントエンドの設定(Next.js)
target→es5
module→esnext
バックエンドの設定(Nest.js)
target→es2017
module→commonJS
推奨の設定について
targetについてはnodeのバージョンを確認しつつ、そのバージョンに合ったものを使用するのがよい。
Node14→ES2020
Node16→ES2021
moduleについては、フロントエンドとバックエンドで異なる
フロントエンドの場合、es2015, es2020, esnext
バックエンドの場合、commonJSとなっている。
昨今は、バックエンドのモジュールもcommonJSのほかにESmoduleを選択する場合もある。
今回はここまで
この記事が気に入ったらサポートをしてみませんか?