javascript use strictを使用する

javascript use strictを使用する

javascriptで、use strictを使用すると厳格モードでコードを記述することができ、エラーチェックを行うことができます。

環境

  • OS windows10 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 84.0.4147.105

use strict使い方

まずは、use strictを使用せずに記述したコードを実行してみます。

次に同様のコードに「use strict」を使用して実行してます。

変数宣言がされていないためエラーとなります。

以下のように変数宣言を行うとエラーはなくなります。

エラーになる構文

関数の引数名重複

関数の引数名が重複した場合は
「Uncaught SyntaxError: Duplicate parameter name not allowed in this context」となります。

使用しない場合はエラーにならず、以下の結果となります。

with構文の利用

with構文を利用した場合は、
「Uncaught SyntaxError: Strict mode code may not include a with statement」が発生します。

使用しない場合はエラーにならず、以下の結果となります。

0xでの8進数の表記

0xで8進数を表示した場合は
「Uncaught SyntaxError: Octal literals are not allowed in strict mode.」となります。

使用しない場合はエラーにならず、以下の結果となります。

外で定義したthisの関数内での利用

外で定義したthisを関数内で利用した場合は、
「Uncaught TypeError: Cannot read property ‘num’ of undefined」となります。

使用しない場合はエラーにならず、以下の結果となります。

将来のキーワードとして予約されいるワードを使用

将来のキーワードとして予約されている「implements,interface,let,package,private,protected,public,static,yield」を変数名として使用した場合は
「Uncaught SyntaxError: Unexpected strict mode reserved word」となります。

使用しない場合はエラーにならず、以下の結果となります。

適用範囲

関数の中で、使用すると適応範囲は関数の中のみとなります。