はじめてのJavaScriptに続き、「詳解JavaScript基礎文法編」の受講が完了しました。
#ドットインストール
詳解JavaScript 基礎文法編完了。他の言語を経験している人にとっては文法確認だからわざわざ写経する必要はなく、聞き流したら良いレベルかな。
構文を丸暗記しても意味ないし、実際にコーディングする時に分からなかったらググれば良い。#駆け出しエンジニアと繋がりたい
— じゅに💻脱サラに命かける人 (@Jyu210) December 23, 2019
目次
レッスン内容
基礎文法編というだけあって、基本的な文法や扱えるデータの型についての内容となっています。
- 文字列・数値
- 演算子
- 定数
- 変数
- データ型
- 条件分岐
- ループ
- 関数
上記を全26回の動画で一つ一つの丁寧に説明してくれます。
JavaScriptの内容だけでなく、VSCodeの便利なショートカットなどもついでに説明してくれるようなところはありがたいですね。
use strict(厳格モード)
レッスンの最初から「use strict」をコードの先頭におまじないのように書いていきます。
これついては「厳密なエラーチェックをしてくれて、エラー発見がしやすくなる」というぐらいの説明しかありません。
こういうの気になっちゃいますよね。
なのでちょっとだけ調べてみました。
「use strict」を書くと「厳格モード」で実行されることになり、エラーにならなかったような曖昧な記述がエラーとなるようになります。
「厳格モード」は2009年12月にリリースされたES5というバージョンから採用されています(今の最新はES6)。
use strict(厳格モード)のメリット
「厳格モード」を使用するメリットは以下の通りです。
- コード内に存在する潜在的な問題の早期発見につながる
- 同一コードであっても「厳格モード」でない場合より高速に実行できる場合がある
順番に見ていきます。
コード内に存在する潜在的な問題の早期発見につながる
以下のような「ミス」としてJavaScriptに受け入れられていた(エラーとならなかった)コードがエラーとなるようになります。
内容 | 「厳格モード」でない場合 |
宣言されていない変数への代入 | グローバル変数が作成される |
書き込み不可の変数への代入 | 無視される |
書き込み不可のプロパティへの代入 | 無視される |
削除不可のプロパティの削除 | 無視される |
プロパティ名の重複 | 最後に宣言したものがプロパティの値となる |
関数の引数名の重複 | 重複した引数がそれより前にある同盟の引数を隠蔽する。 |
8真数標記 | 8進数として処理される |
これを見ると「厳格モード」でない場合は自分が知らない変数が勝手に作成されたりするので、潜在的なバグにつながるのがわかります。
これらがエラーとなることで潜在的なバグを潰せると考えると、ドットインストールの講師が言われる通り、「use strict」は書いておいたほうが良いですね。
同一コードであっても「厳格モード」でない場合より高速に実行できる場合がある
JavaScriptのエンジンによる最適化処理が難しい処理がエラーとなるようになるので、必然的に事前に修正されるようになるためです。
use strict(厳格モード)の注意点
メリットを見ると「厳格モード」は書かないと損のように感じますが、注意点もあります。
- ブラウザの対応状況を確認する必要がある
- 「厳格モード」でないコードもあることを意識する必要がある
順番に見ていきます。
ブラウザの対応状況を確認する必要がある
確かに注意は必要ですが、主要ブラウザはほぼ全て「厳格モード」に対応しているので、現時点ではあまり気にする必要はありません。
しかし、IE(10.0以上が対応)など古いバージョンが使われることが多いブラウザでは注意が必要です。
「厳格モード」でないコードもあることを意識する必要がある
既存システムの改修や機能追加時などは「厳格モード」でないコードが既に存在している可能性があります。
そのため、「厳格(strict)モード」の指定はスクリプトではなく、関数単位で行うようにしましょう。
まとめ
難易度:
use strict(厳格モード)に少し踏み込みましたが、これを気にしなければ基本文法の学習のみなので難易度は低いです。
特に他の言語の経験があるような方であれば、基本的に流し聞きしたら問題ありません。
しかしプログラミング初心者の方は、きちんと動画で書かれたコードを自分でも書いて実際に動かしてみることをオススメします。
その時に重要なのが書いたコード(文法)を暗記するのではなく、「全体をなんとなく理解する」ことです。
「全体をなんとなく理解」していたら分からなかった時にググるヒントにもなります。(丸暗記だときっとググれないです)
おそらく次のレッスンからオブジェクト指向という難関が出てくるので、それを学習する基盤ともなるのでしっかりとこのレッスンはおさえておきましょう。