JavaScriptのグローバル変数がいるかどうか検索するワンライナーコード


問題点

旧来のJavaScriptは、もともと依存関係管理の仕組みを持たず、また開発者自身にその意識も低かったことから、レガシーWebシステムの保守・改修案件においてはグローバル変数を多用しているケースがあります。

特に中規模〜大規模のシステムになると多数のグローバル変数が存在し、グローバル変数がいないせいでエラーになったりします。

そこで、ブラウザのコンソールに入力して手軽にグローバル変数を検索できるワンライナーを書いてみました。

for (key in window) {if(key.indexOf("検索したいグローバル変数名")!=-1) console.log(key);}

FirefoxやChromeのコンソールにコピペして実行してください。

解説

グローバル変数はwindowオブジェクトにその変数名をキーとして格納されるので、windowオブジェクトでfor in文を回し、string#indexOfの戻り値が-1でないものをコンソール上に表示します。

厳密には変数名の完全一致ではなく部分一致(検索したいグローバル変数名を含むグローバル変数を検索)ですが、実際にグローバル変数を探すときにはこちらのほうが使いやすいかと思います。