はじめに:
こんにちは。Satoです。
本稿では、Progate学習を修了した段階のプログラミング学習者が、JavaScriptPrimer(以下、Primerとします)を学習するとどうなるのかを記録したものです。基本的には自身のアウトプットを主眼に置いていますが、初学者が躓いた点とその解決方法も記載するつもりです。良かったら参考にしてみてください。
学習事項:
JavaScriptとECMAScript
・ECMAScript…どの実行環境(ブラウザ・サーバーなど)でも共通する仕様のこと
補足:Ecma Internationalという団体が標準化している仕様らしい。
・JavaScript…ECMAScript+実行環境の固有機能を含んだものを指す。
予約語とは:
予約語とは、constやletなどのように変数名を宣言できない、特別な意味を有するキーワードのこと。つまり、↓のような変数名(const)はダメだよーというお話。
//ダメな変数名の事例
const const = "定数";
文はセミコロンで区切る:
セミコロンはちゃんと書こう。Progateだとセミコロンを忘れていても、作動していたけどバグの原因になるらしいので、良くない。
strict mode:
コードを書くときは、このモードで書いた方が無難。strict modeにすることで、古く安全ではないコードを禁止してくれている。
実行コンテキスト:ScriptとModule
実行コンテキストとは(Primerには記載なし)
「JavaScriptの実行コンテキストを理解する」によると、以下の通り。
実行コンテキストとは
コードを実行する際の文脈・状況
→コードがどのような状況で実行されているのかということブラウザ上でコードを実行した場合にはwindowオブジェクトとthisがJavaScriptエンジンによって準備されます。
コードが実行されている状態によってコンテキストが変わってくるので、これらを含めたものを実行コンテキストと表現します。
・Script…デフォルトの実行コンテキスト。デフォルトは、strict modeではない。
・Module…JavaScriptをモジュールとして実行するためのもので、デフォルトがstrict mode。
※モジュールについては、別の回で解説するとのこと。
躓いた点:
日経クロステックのこちらの記事によると、セミコロン(;)を書かなくても大丈夫らしいです。結局セミコロンが必要なのかどうかが気になりました。(書いた方が良いとは思いますが…)
https://xtech.nikkei.com/atcl/nxt/column/18/02780/032100005/
参考文献
azu・Suguru Inatomi「第一部: 基本文法 JavaScriptとは」『JavaScript Primer』
https://jsprimer.net/basic/introduction/
@cotton11aq (Hagure)「JavaScriptの実行コンテキストを理解する」
https://qiita.com/cotton11aq/items/091c983e9034e22c145c