jslint - javascript 構文チェック オフライン - JavaScriptの "use strict "とは何を意味し、その理由は?

javascript 解析ツール / javascript / syntax / use-strict

最近、JavaScriptコードの一部をCrockfordのJSLintで実行したところ、次のエラーが発生しました。

Mark Rogers



Answer #1

"use strict"; というステートメント。JavaScriptの縮小されたより安全な機能セットであるStrictモードを使用するようにブラウザに指示します。

グローバル変数を禁止します。(変数名で欠落している var 宣言とタイプミスをキャッチします)

サイレントに失敗した割り当ては、厳密モードでエラーをスローします( NaN = 5; 割り当てます;)

削除できないプロパティを削除しようとすると、スローされます( delete Object.prototype )。

オブジェクトリテラル内のすべてのプロパティ名が一意である必要があります( var x = {x1: "1", x1: "2"}

関数のパラメーター名は一意である必要があります( function sum (x, x) {...}

8進構文を禁止します( var x = 023; 一部の開発者は、先行ゼロは数値を変更しないと誤って想定しています。)

with キーワードを禁止します

eval strictモードでのevalは新しい変数を導入しません

任意の形式で eval および arguments という名前のバインドまたは割り当てを禁止します