我的应用程序在javascript中使用全局变量。有没有办法找到它们中有多少?
由于 嗡
答案 0 :(得分:10)
我做了一个。
var GlobalTester = (function(){
var fields = {};
var before = function(w){
for(var field in w){
fields[field] = true;
};
};
var after = function(w){
for(var field in w){
if(!fields[field]){
console.log(field + " has been added");
}
};
};
return {before: before, after:after};
}());
GlobalTester.before(window);
// Run your code here
window.blar = "sdfg";
GlobalTester.after(window);
这将在控制台中输出blar has been added
答案 1 :(得分:8)
在浏览器开发者窗口中尝试此操作(F12):
Object.keys(window).length
答案 2 :(得分:1)
通过这样的窗口元素迭代:
for(var globe in window){
console.log(globe);
}
答案 3 :(得分:0)
使用linter会在引入全局变量时发出警告。您还可以在代码运行之前和之后比较window
的项目。
答案 4 :(得分:-2)
检查窗口对象,但在执行此操作之前,您需要知道所有全局变量名称,这是一个示例:
var myGlobalVars = {"global1":0, "global2":0};
function countGlobals() {
var count = 0;
for (myGlobalVar in myGlobalVars) {
if (myGlobalVar in window) {
count++;
}
}
return count;
}
countGlobals();