[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
質問
最近、私は自分のJavaScriptコードの一部をCrockfordの JSLint で、以下のようなエラーが出ました。
1 行目の文字 1 に問題があります: "use strict" 文がありません。
いろいろ検索していると、ある人は
"use strict";
をJavaScriptのコードに追加しました。この記述を追加したら、エラーは出なくなった。残念ながら、この文字列の記述にまつわる経緯は、Googleではあまり明らかにされていない。確かに、JavaScriptがブラウザによってどのように解釈されるかと関係があるに違いないが、どのような効果があるのか見当もつかないのである。
では、何が
"use strict";
それは何を意味するのか、そして今でも有効なのか。
現在のブラウザのどれかが
"use strict";
それとも将来的なものですか?
解決方法は?
ES6モジュールのアップデート
内部
ネイティブECMAScriptモジュール
(を使用)。
import
と
export
ステートメント)と
ES6クラス
厳密モードは常に有効であり、無効にすることはできません。
オリジナル回答
Javascript Strict Modeについては、こちらの記事が参考になると思います。 John Resig - ECMAScript 5 Strict Mode、JSON、およびその他。
興味深い部分を引用します。
Strict Mode は ECMAScript 5 の新機能で、プログラムまたは関数を "strict" 操作コンテキストに配置することができます。このストリクトコンテキストは、特定のアクションの実行を阻止し、より多くの例外をスローします。
そして
ストリクトモードは、いくつかの点で役に立ちます。
- よくあるコーディングの失敗をキャッチし、例外をスローします。
- 比較的安全でない行為(グローバルオブジェクトへのアクセスなど)が行われた場合、それを防止したり、エラーを投げたりします。
- 混乱を招くような機能や、考え抜かれた機能を無効にします。
また、ファイル全体に"strict mode"を適用することができることにも注意してください... あるいは、特定の関数にのみ使用することもできます。 (やはりJohn Resigの記事から引用) :
// Non-strict code...
(function(){
"use strict";
// Define your library strictly...
})();
// Non-strict code...
これは、古いコードと新しいコードを混在させなければならない場合に役立つかもしれません ;-)
ということで、少しは
"use strict"
Perlで使用できる
(だからこの名前なのか?)
というのも、このツールは、破損につながる可能性のあるものをより多く検出することで、エラーを減らすのに役立つからです。
ストリクトモードが すべての主要なブラウザでサポートされています。 .
関連
-
[解決済み】エラー。Ionic使用中にモジュール '../lib/utils/unsupported.js' が見つかりませんでした。
-
フロントエンド非同期(アシンク)ソリューション(全ソリューション)
-
[解決済み] let "と "var "の使い分けは?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] JavaScriptで現在のURLを取得する?
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] パラメータに**(ダブルスター/アスタリスク)、*(スター/アスタリスク)がありますが、これはどういう意味ですか?
-
[解決済み] JSLintが突然レポートする。"use strict" の関数形式を使用する
-
[解決済み】JavaScript版sleep()とは?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
jsを使った簡単な照明スイッチのコード
-
元のイベントが実行されなかった後に要素を追加するためのjQueryソリューション
-
vue+webrtc(Tencent cloud)ライブ機能の実践を実現するために
-
vueの補間表現とv-textディレクティブの違いについて
-
VUEグローバルフィルターの概念と留意点、基本的な使い方
-
Vueのイベント処理とイベントモディファイアの解説
-
[解決済み] Error : 未定義のプロパティ 'map' を読み取ることができません。
-
[解決済み】TypeErrorの解決方法。未定義またはヌルをオブジェクトに変換できない
-
nullのプロパティinnerHTMLを読み取れません エラーメッセージ
-
[解決済み】Node.jsの'use strict'文はどのように解釈されるのですか?[重複している]