2012-04-19 115 views
1

我想做一个可以在调试中使用的函数,用它们的值打印所有变量。这将提醒:
X = 3
Y = 2打印所有变量?

职能是这样的:
例:

var text=''; 
for(var a=0;a<allVariables;a++) 
{ 
    text+=nameOfVariable + " = " + valueOfVariable + "/n"; 
} 
alert(text); 
+0

使用的console.log。 – malletjo 2012-04-19 17:11:17

+0

除了console.log,我强烈建议使用可用于浏览器的开发工具。 Chrome有一个内置的(F12),并且FireFox有FireBug扩展/插件 – Matt 2012-04-19 17:12:12

+0

@racar你可能想知道你的浏览器正在使用什么,然后再建议你。另外,为什么不使用警报,如果这是你喜欢的? – Madbreaks 2012-04-19 17:28:42

回答

1

你应该使用控制台方法,这是最好的调试。所有现代浏览器都有控制台,并且您可以使用更好的调试工具,如firefox中的firebug。然后一个简单的console.log(allVariables),它全部显示在控制台中。

+0

是的,但我如何填写所有变量? – user1342369 2012-04-19 17:15:42

+1

你是说,页面的所有变量?它们全部存储在webbrowsers的'window'对象和node.js的'global'对象中。所以你只需要做'console.log(window)'来查看所有声明的变量。否则,你可以声明allVariables:'allVariables = {x:3,y:2}; console.log(allVariables);' – Tronix117 2012-04-19 17:18:35

0

如果您使用全局任何东西,则很难确定“所有变量”是什么。默认情况下,全局变量全部属于window范围。因此,您可以循环使用window中的所有值,但这会给您以及其他所有

如果您将所有内容放入命名空间中,您可以更清楚地了解它。

var MyVariables = { 
}; 

MyVariables.foo = 1; 
MyVaraibles.hello = 'world'; 

for(var name in MyVariables){ 
    console.log(name, MyVariables[name]); 
} 

另请参阅浏览器上提供的开发工具。我个人会在FireFox中推荐Chrome开发工具(内建,F12)或FireBug。 IE也有一些内置的功能。

+0

如何访问该窗口范围(我可以做一个正则表达式只有变量) – user1342369 2012-04-19 17:49:46

+0

@ user1342369它只是'window'。例如'window.foo' – Matt 2012-04-19 17:54:41

6

这可能会做你要找的内容:调试

console.dir(window);