[解決済み】Node.jsの'use strict'文はどのように解釈されるのですか?[重複している]
質問
Node.js、Express.js、jadeなどの流れを理解するために、Node.jsの探求を始め、多くのデモウェブアプリケーションを書きました。
しかし、最近出会ったのは、以下の記述です。
"use strict"
を関数内の1行目として使用し、すべての
.js
ファイルを作成します。
Node.jsでは具体的にどのように解釈されるのでしょうか?
どのように解決するのですか?
"use strict";
基本的にストリクトモードを有効にします。
ストリクトモードとは、プログラム、または関数を "ストリクト" 動作コンテキストに置くことができる機能です。ストリクト・オペレーティング・コンテキストでは、メソッド形式では従来通りこれをオブジェクトにバインドします。関数形式では、グローバルセットオブジェクトではなく、未定義にバインドされます。
あなたのコメントにあるように、いくつかの違いがあることを伝えています。しかし、それはあなたの思い込みです。Node.jsのコードは、あなたのJavaScriptのコードにほかなりません。Node.jsのコードはすべて V8 JavaScriptエンジン . その V8 JavaScriptエンジン は、GoogleがChromeウェブブラウザのために開発したオープンソースのJavaScriptエンジンです。
ということは
"use strict";
は、ChromeブラウザとNode.jsで解釈されます。
JavaScriptのストリクトモードとはをご覧ください。
詳しくはこちら
- ストリクトモード
- ECMAScript 5 Strict モードのブラウザによるサポート
- ストリクトモードが街にやってくる
- ストリクトモード用互換性テーブル
- Stack Overflow questions: JavaScript &で'use strict'は何をするのですか?
ECMAScript 6です。
ECMAScript 6 コード & ストリクトモード。以下はその概要です。 仕様書より :
10.2.1 ストリクトモードコード
ECMAScript Script の構文ユニットは、無制限モードまたは厳密モードの構文とセマンティックスのいずれかを使用して処理される場合があります。コードは、以下の状況ではストリクトモードコードとして解釈されます。
- グローバルコードは、Use Strict ディレクティブ (14.1.1 参照) を含むディレクティブプロログで始まっていれば、ストリクトモードコードです。
- モジュールコードは常にストリクトモードコードです。
- ClassDeclaration または ClassExpression のすべての部分は、ストリクト・モード・コードです。
- eval コードは、Use Strict ディレクティブを含むディレクティブプロログで始まる場合、または eval の呼び出しがストリクトモードコードに含まれる直接 eval (12.3.4.1 参照) の場合、ストリクトモードコードになります。
- 関数コードは、関連する FunctionDeclaration, FunctionExpression, GeneratorDeclaration, GeneratorExpression, MethodDefinition, ArrowFunction がストリクトモードコードに含まれるか、関数の内部スロット [[ECMAScriptCode]] の値を生成するコードが Use Strict 指示子を含む Directive Prologue から始まる場合は、ストリクトモードコードになります。
- 組み込みの Function および Generator コンストラクタの引数として提供される関数コードは、最後の引数が String で、処理時に Use Strict ディレクティブを含む Directive Prologue で始まる FunctionBody である場合、ストリクトモードコードになります。
また、現在のNode.jsのバージョンでどのような機能がサポートされているか迷った場合は、以下のサイトを参照してください。 node.green と同じデータを使用しています。 カンガックス ).
関連
-
[解決済み】WebpackとBabelで「このファイルタイプを扱うには適切なローダーが必要な場合があります。
-
[解決済み】エラー:リスン EACCES 0.0.0.0:80 OSx Node.js
-
[解決済み】Kendo Observable Bindingと併用する場合、Kendo Switch Labelsを変更することは可能ですか?[Kendo-UI]です。
-
[解決済み】ES6マップオブジェクトをソートすることは可能ですか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] Node.jsのプログラムにコマンドライン引数を渡すにはどうしたらいいですか?
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] Node.jsで終了する方法
-
[解決済み] Node.jsアプリケーションをデバッグするにはどうすればよいですか?
-
[解決済み] Node.jsのmodule.exportsの目的と使い方を教えてください。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 解決済み】clearInterval()が動作しない [重複] [重複]
-
[解決済み】JavaScript "Uncaught TypeError: object is not a function" 連想性の質問
-
[解決済み】JavaScriptのボタンonclickが機能しない
-
[解決済み] エラー。モジュールhtmlが見つからない
-
[解決済み】JavaScript ランタイムエラー:'$'が未定義です。
-
[解決済み】Redux TypeError: 未定義のプロパティ 'apply' を読み取れない
-
[解決済み】 Uncaught Reference Error: stLight is not defined (in Chrome only)
-
[解決済み】 \u003C とは何ですか?
-
[解決済み】未定義のプロパティ 'forEach' を読み取ることができない
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?