グローバルスコープを汚染する変数がたくさんあるようなプロジェクトを継承しました。そのすべてを探したいと思います。ユーザーが導入したグローバル変数を見つける最良の方法は何ですか?私はデフォルトでそこにあるウィンドウオブジェクトのプロパティを除外し、私たちのコードによって導入されたものにフィルタをかけます。これらを簡単に識別できるツールやIDEプラグインはありますか?おかげJavascriptでグローバル変数を見つける最良の方法
0
A
答えて
3
があなたのウィンドウ・オブジェクトのキーを比較jsFiddle https://jsfiddle.net/noevgh4u/1/にこの例を作成「空の」ウィンドウオブジェクトのキーを使用します。
(function(){
var iframe = document.createElement('iframe');
iframe.src = "about:blank";
document.body.appendChild(iframe);
var windowVars = Object.keys(iframe.contentWindow);
var globalVars = Object.keys(window).filter(key => !windowVars.includes(key));
console.log("global Vars:", globalVars);
document.body.removeChild(iframe);
})();
これで、宣言されている行を見つけるためにコードを検索する必要があります。
-1
はこれを試してみてください...これはページ上のすべての関数と変数の一覧が表示されます
for(var stuff in window) {
if(window.hasOwnProperty(stuff)) console.log(stuff);
}
、超便利ではないかもしれませんが、あなたにいくつかのより多くの情報を与えるかもしれません。
Chromeデベロッパーツールを開くと試してみることができます。変数var life = 42
を作成すると、上記forループを実行した後に表示されます。
1
ウィンドウオブジェクトの例を取得:https://jsfiddle.net/noevgh4u/
オブジェクトの例の比較:https://jsfiddle.net/noevgh4u/1/は
私はあなたの好みのブラウザで空白のページを開くことであろうと考えることができる最も現実的な方法、書き出しますそのウィンドウのプロパティに基づいたオブジェクトです。
この例では、ページのテキストからそのオブジェクトをコピーしています。
グローバルを確認するアプリケーションに貼り付けます。
アプリケーションでは、あなたが今、あなたのアプリケーションキーを含む空白のWindowsキーとNEWOBJを含むOBJのを持つように
var newObj;
for(prop of Object.keys(window)) {
newObj[prop] = null;
};
を使用して新しいオブジェクトを作成します。
次に、このようなDeep comparison of objects/arrays
か何か等の方法を使用して2つを比較:
function filterKeys(a, b) {
var firstKeys = Object.keys(a);
var secondKeys = Object.keys(b);
var missingKeys = firstKeys.filter(val => !secondKeys.includes(val));
return missingKeys;
}
var createdVarsAndFuncs = filterKeys(obj, newobj);
私は
関連する問題
- 1. フィボナッチ数を見つける最良の方法
- 2. グローバル(ish)変数のソースを見つける方法は?
- 3. PowerShellでグローバル変数を使用する最良の方法は?
- 4. opencvでオブジェクトを見つける最良の方法
- 5. forループで最良のペアを見つける方法
- 6. SQL Server 2008でSQLロックを見つける最良の方法
- 7. 正規表現で関数を見つける最良の方法は?
- 8. jqueryで複数のグローバル変数を設定する最良の方法
- 9. Python - 類似の色を見つける、最良の方法
- 10. ビュー階層の要素を見つける最良の方法
- 11. 最良の方法を見つけようとする
- 12. インデックスを見つけてPythonの値を変更する最も良い方法
- 13. 変数の最大値を見つける方法
- 14. Vue.jsでグローバル変数を宣言する最良の方法は何ですか?
- 15. 最大の変数を見つける
- 16. Cコードベースでグローバル/静的変数を見つけるツール
- 17. グローバル変数を避ける方法
- 18. Djangoのタグオブジェクトの配列の中でタグを見つける最良の方法
- 19. オープンMPスケジュール - ループの最良の引数を見つける
- 20. PHP配列内で最良の一致するキーを見つける方法
- 21. laravelのデータベースからグローバル変数を定義する最良の方法
- 22. Node.jsのデフォルトゲートウェイIPを見つける最良の方法は何ですか?
- 23. ネットワーク上のデバイスを見つける最良の方法は何ですか?
- 24. kの最良値を見つける方法k-NNについては?
- 25. csv pythonで要素を見つけるのに最も良い方法
- 26. ドロップされたusercontrolでコントロールを見つける最良の方法
- 27. Windowsフォームアプリケーションで長期実行コードを見つける最良の方法
- 28. 計算の最大数でグローバルな最大値を見つけよう
- 29. javascriptで関数のグローバル変数を定義する方法は?
- 30. JavaScriptのバンドルとロードのためのより良い方法を見つける
私はjslintがローカル宣言されていない変数について警告すると思います。標準のウィンドウプロパティに対して誤検出が発生する可能性がありますが、それらをスキップするのは困難ではありません。 – Barmar
ここにSO [post1](http://stackoverflow.com/questions/17276206/list-all-js-global-variables-used-by-site-not-all-defined)[post2]のいくつかの投稿がありますhttp://stackoverflow.com/questions/8369338/javascript-dumping-all-global-variables) –