厳密なモード 'use strict'が強制されているかどうかを確認するために、とにかく厳密なモードと違ったモードのための別のコードを実行します。 厳密なモードでは、グローバルメソッド内でisStrictMode();//boolean
厳密なモードが強制されているかどうかを確認する方法はありますか?
答えて
グローバルコンテキスト内で呼び出された関数内部this
がグローバルオブジェクトを指していないという事実が厳密モードを検出するために使用することができる。
var isStrict = (function() { return !this; })();
デモ:
> echo '"use strict"; var isStrict = (function() { return !this; })(); console.log(isStrict);' | node
true
> echo 'var isStrict = (function() { return !this; })(); console.log(isStrict);' | node
false
のように機能を探しているのですが、グローバルメソッド内ではthis
が'undefined'
です。
function isStrictMode() {
return (typeof this == 'undefined');
}
function isStrictMode() {
try{var o={p:1,p:2};}catch(E){return true;}
return false;
}
あなたはすでに回答があるようです。しかし、私はすでにいくつかのコードを書いています。それはに新しい変数を導入しないeval
でstrictモード事実を使用しています
var mode = (eval("var __temp = null"), (typeof __temp === "undefined")) ?
"strict":
"non-strict";
:だからここ
私は例外を使用して任意のコンテキストで動作していない何か、だけでなく、グローバルなものを好みます外側の文脈
好奇心の邪魔をして、2015年の防弾対策はこれで、ES6はここにありますか? –
最新のchromeとnodejでES6で動作することを確認します。 –
エレガントで働く、ありがとう! – rudyryk
もっとエレガントな方法: "これは" オブジェクトがある場合は、真
"use strict"
var strict = (function() { return !!!this })()
if (strict) {
console.log ("strict mode enabled, strict is " + strict)
} else {
console.log ("strict mode not defined, strict is " + strict)
}
- 1. 特定のフォルダから厳密なURL解釈を強制する方法はありますか?
- 2. は、プロトコルバールでClassを厳密に強制していますか?
- 3. eval()はメソッドで厳密なモードで実行されますか?
- 4. バッチファイルから、プログラムがインストールされているかどうかを確認する方法はありますか?
- 5. UIViewControllerが表示されているかどうかを確認する良い方法はありますか?
- 6. 強制停止が呼ばれていることをアンドロイドで確認する方法はありますか?
- 7. 厳密なモードのみをサポートするjs環境はありますか?
- 8. は、performSelector:withObject:afterDelay:が登録されているかどうかを確認する方法はありますか?
- 9. コンボボックスのドロップダウンリストが表示されているかどうかを確認する方法はありますか?
- 10. メンバーにモックが設定されているかどうかを確認する方法はありますか?
- 11. シンボルが引用されているかどうかを確認する方法はありますか?
- 12. OSにプログラム/パッケージがインストールされているかどうかを確認する方法はありますか?
- 13. 特定のアドインがインストールされているかどうかを確認する方法はありますか?
- 14. ベロシティ:変数が定義されているかどうかを確認する方法はありますか
- 15. フラッシュがインストールされているかどうかを確認する方法はありますか?
- 16. システムキャレットが表示されているかどうかを確認する方法はありますか?
- 17. AUTOLISPでSHIFTが押されているかどうかを確認する方法はありますか?
- 18. Primefaces RadioCheckboxがチェックされているかどうかを確認する方法はありますか?
- 19. cudaコードがリロケータブルデバイスコードでコンパイルされているかどうかを確認する方法はありますか?
- 20. QML要素がロードされているかどうかを確認する方法はありますか?
- 21. iPhoneアプリでボタンが押されているかどうかを確認する方法はありますか?
- 22. jarファイルがapkにコンパイルされているかどうかを確認する方法はありますか?
- 23. 反応コンポーネントがアンマウントされているかどうかを確認する方法はありますか?
- 24. Pythonのsetuptoolsがインストールされているかどうかを確認する方法はありますか?
- 25. gradleキャッシュが変更されているかどうかを確認する方法はありますか?
- 26. クラスがPythonでインスタンス化されているかどうかを確認する方法はありますか?
- 27. Zend_Db_Adapter_Mysqliを使用してMySQLの厳密なSQLモードを有効にする方法はありますか?
- 28. 厳密なオプションのPerlテンプレート:変数が定義されているかどうかをチェックする方法?
- 29. AS3ライブラリは厳密モードではなく標準モードでコンパイルする必要がありますか?
- 30. UDIDがビルドに含まれているかどうかを確認する方法はありますか?
グレートに変換します。これはエレガントでどこでも使えます。 –
説明を明確にするために、return文は 'return this === undefined'と同等です。グローバルオブジェクトと比較していないので、' this'が存在するかどうかを調べるだけです。 – aljgom