JavaScript勉強会

JavaScriptの学習日記

【JS学習マラソン】第6回 1.2.3 モダンなモード, "use strict"

JavaScript学習マラソンの第6回は、

「現代の JavaScript チュートリアル」パート1の2.3「モダンなモード, "use strict"」です。

 

モダンなモード, "use strict" https://ja.javascript.info/strict-mode

を読んでみます。

 

Strict モード(厳格モード)

JavaScriptには、「Strictモード」という仕組みが用意されています。

 

"use strict" ディレクティブは “最新” モードにエンジンを切り替え、いくつかの組み込みの機能の振る舞いを変更します。

 

f:id:jsstudy:20190103180909p:plain

 

JavaScriptの文法は、バージョンアップを重ねる度にちょっとずつ変わってます。

JavaScriptのコードを古い文法ではなく新しい文法で書く場合、JavaScriptのコードを解釈するコンパイラーに対して、「最新のバージョンでコードを解釈しなさい」とプログラマーが指示を出すことができます。

その仕組みが「Strictモード」とのことです。

 

developer.mozilla.org

 

Strictモードの呼び出し方

プログラムや関数の先頭部分で「"use strict";」と書けば、Strictモードを有効にできます。

 

"use strict";
// このコードはモダンな方法で動作します。
alert( 'Strict mode!' );

 

Strictモードの注意点

  • 一度Strictモードを有効にしたら、途中で無効にすることはできない。
  • 「"use strict";」は先頭で書かなければ無視される。(途中で書いても無駄)
  • 外部ファイルを呼び出す場合、最初にStrictモードを有効にしてると、その後も全部有効になってしまう。(非Strictモードで使いたい部分があるときは要注意)

 

コード全体じゃなくて、一部の関数だけなど、部分的にStrictモードを有効にすることもできます。

古いJavaScriptのコードを修正する場合とか、全部をいきなりStrictモードにできない場合は、使い分ければ良いですね。

 

関数に対する strict モード

関数で strict モードを呼び出すには、関数本体で他のいかなる文よりも前に "use strict"; (または 'use strict';) という文をそのまま追加します。

 

チュートリアルを順番に勉強していく場合、まだ今の段階では「関数」を勉強してないので、↑この説明はいったん無視しておきましょう。)

 

defaultモード(通常モード)

用語として、

「Strictモード」(厳格モード)ではない状態を

「defaultモード」(通常モード)とか「非Strictモード」

と呼ぶようです。

 

チュートリアルでは、基本的にStrictモードでJavaScriptのコードを書くそうです。

今から書くなら、全部Strictモードにしておけば良いですね?

 

Strictモードを使うメリット

javascript strictモード メリット - Google 検索

いろいろな利点が説明されてますが、最新の文法を適用することで、エラーを減らすことが利点みたいです。

 

まとめ

(教材のサマリーから引用)

  1. "use strict" ディレクティブは “最新” モードにエンジンを切り替え、いくつかの組み込みの機能の振る舞いを変更します。
  2. strict mode は先頭の "use strict" で有効になります。また、自動的に strict mode を有効にする “classes” や “modules” のようないくつかの機能もあります。
  3. strict mode はすべてのモダンブラウザによってサポートされています。
  4. 常に "use strict" で始まるスクリプトは推奨されます。

 

 

 

スラスラ読める JavaScript ふりがなプログラミング (ふりがなプログラミングシリーズ)

スラスラ読める JavaScript ふりがなプログラミング (ふりがなプログラミングシリーズ)