2012-04-19 79 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);