surf core js:厳格モード


use strict誕生背景


JavaScriptはかなり長い間互換性の問題がなく、既存の機能を変更せずに新機能を追加しました.
ECMAScript 5(ES 5)が登場する前の2009年に限ります.
新しく制定されたES 5は新機能を追加し、既存の機能を一部変更した.
したがって、既存の機能を変更すると互換性が低下する可能性があるため、ほとんどの変更はES 5の基本モードでは有効になりません.
逆に、この変更はuse strictという特殊なインジケータを使用して厳格モード(strictmode)が有効になっている場合にのみ有効になります.

use strict宣言


use strict宣言は、スクリプトまたは関数本文の最上位レベルに常に書き込む必要があります.
"use strict"
...

//or

function test() {
  "use strict"
  ...
}

ブラウザコンソールは使用できません。


ブラウザコンソールを使用する場合は、デフォルトではuse strictは適用されません.
厳密モードをブラウザコンソールに適用するには、「use strict」を入力し、Shift+Enterキーを押して改行し、必要なスクリプトを入力します.
'use strict'; <Shift+Enter를 눌러 줄 바꿈 함>
//  ...테스트하려는 코드 입력
<Enter를 눌러 실행>
この機能はFirefoxやChromeなどの有名なブラウザで利用できることが多い.
ブラウザが古すぎてコンソールウィンドウにuse strictを入力できない場合、use strictを適用する最も信頼できる方法は、以下に示すようにコードをRapperで包むことです.
(function() {
  'use strict';

  // ...테스트하려는 코드...
})()

use strict自動適用


モダンjavascriptは、「クラス」と「モジュール」と呼ばれる構造を提供します.
この2つを使用すると、use strictが自動的に有効になります.

Reference

  • javscript.info