有没有办法在控制台中通过“拉”而不是“推”来读取变量值?
例如,比方说,我的JS中有一个地方:
var a = "foo";
我是否可以通过在控制台中输入
来从控制台“拉”a
的值
$.a
或
$.this.a
通过“推”我的意思是在JS中写这样的东西:
console.log(a);
这是我不希望做的事情。
答案 0 :(得分:2)
如果变量在全局范围内或全局范围内的某个对象(例如window
)具有对它的引用,那么您可以通过控制台从控制台读取/修改它简单的任务/参考;只需在控制台中输入MyGlobal
或MyGlobal = "foo"
即可执行。在第一种情况下,它将打印当前值,在后者中它将修改该值。如果变量只是本地作用域(即它只是在特定函数中定义:function() { var a = "foo"; ...}
),那么控制台无法使用脚本调试器(参见本答案的底部)或修改脚本来访问/更改它(见下文)。
如果变量不在全局范围内或由全局对象引用,但您可以编辑脚本,则可以轻松地将其打开到控制台。而不是var a = "foo"
,请执行window.myOptions = {a: "foo"}
之类的操作。然后,从控制台,您可以执行window.myOptions.a
阅读或window.myOptions.a = "bar"
设置值。
如果您需要在脚本中读取/修改局部变量的值,而您无权更改实际脚本,则可以使用浏览器的脚本调试器。
一种简单的方法是在要读取/更改的变量上设置断点(通常通过在脚本调试窗口中的行号上单击鼠标;有关详细信息,请参阅上面的链接),然后在脚本执行时,它会在该行运行时暂停。用鼠标悬停在变量上,或者读取右侧的信息窗格(取决于调试器和窗口配置)将显示当前值。它还为您提供了修改变量值的机会。您也可以在函数定义中设置断点,以读取/更改为函数指定的参数。
可以在Safari,IE / Edge,Firefox和Chrome中使用(基本上任何具有良好调试工具的现代浏览器)。 Firefox有一个方便的分步指南,名为“检查,修改和监视变量”:https://developer.mozilla.org/en-US/docs/Tools/Debugger/How_to/Examine,_modify,_and_watch_variables