"Pulling" 来自控制台的变量而不是 "pushing"
"Pulling" variables from the console instead of "pushing"
有没有办法在控制台中通过 "pulling" 而不是 "pushing" 来读取变量值?
例如,我的 JS 中有一个地方:
var a = "foo";
我可以通过在控制台中输入 "pull" a
的值 "pull"
$.a
或
$.this.a
"pushing" 我的意思是在 JS 中写这样的东西:
console.log(a);
那是我不希望做的。
如果变量在全局范围内或全局范围内的某个对象(例如window
)引用了它,那么你可以read/modify 从控制台通过简单的 assignment/reference;只需在控制台中输入 MyGlobal
或 MyGlobal = "foo"
并执行它。在第一种情况下,它会打印当前值,而在后一种情况下,它会修改该值。如果变量仅在局部范围内(即它只是在特定函数内定义:function() { var a = "foo"; ...}
),则控制台不能 access/alter 它而不使用脚本调试器(参见此答案的底部)或修改脚本(见下文)。
如果变量不在全局范围内或未被全局对象引用,但您可以编辑脚本,您可以轻松地将其打开到控制台。而不是 var a = "foo"
,做类似 window.myOptions = {a: "foo"}
的事情。然后从控制台,您可以执行 window.myOptions.a
读取或 window.myOptions.a = "bar"
设置值。
如果您需要 read/modify 脚本中局部变量的值并且您无权更改实际脚本,您可以使用浏览器的脚本调试器。
- 火狐:https://developer.mozilla.org/en-US/docs/Tools/Debugger
- Chrome: https://developer.chrome.com/devtools/docs/javascript-debugging
一个简单的方法是在你想要的变量处设置一个断点read/change(通常是在脚本调试的行号上点击鼠标window;详情见上面的链接)然后,当脚本执行时,它将在该行运行时暂停。用鼠标悬停在变量上,或阅读右侧的信息窗格(取决于调试器和 window 配置)将显示当前值。它还使您有机会修改变量的值。您也可以在函数定义处设置断点,read/change 给函数的参数。
在 Safari、IE/Edge、Firefox 和 Chrome(基本上任何具有良好调试器工具的现代浏览器)中都是可能的。 Firefox 有一个方便的分步指南,名为 "Examine, modify, and watch variables":https://developer.mozilla.org/en-US/docs/Tools/Debugger/How_to/Examine,_modify,_and_watch_variables
有没有办法在控制台中通过 "pulling" 而不是 "pushing" 来读取变量值?
例如,我的 JS 中有一个地方:
var a = "foo";
我可以通过在控制台中输入 "pull" a
的值 "pull"
$.a
或
$.this.a
"pushing" 我的意思是在 JS 中写这样的东西:
console.log(a);
那是我不希望做的。
如果变量在全局范围内或全局范围内的某个对象(例如window
)引用了它,那么你可以read/modify 从控制台通过简单的 assignment/reference;只需在控制台中输入 MyGlobal
或 MyGlobal = "foo"
并执行它。在第一种情况下,它会打印当前值,而在后一种情况下,它会修改该值。如果变量仅在局部范围内(即它只是在特定函数内定义:function() { var a = "foo"; ...}
),则控制台不能 access/alter 它而不使用脚本调试器(参见此答案的底部)或修改脚本(见下文)。
如果变量不在全局范围内或未被全局对象引用,但您可以编辑脚本,您可以轻松地将其打开到控制台。而不是 var a = "foo"
,做类似 window.myOptions = {a: "foo"}
的事情。然后从控制台,您可以执行 window.myOptions.a
读取或 window.myOptions.a = "bar"
设置值。
如果您需要 read/modify 脚本中局部变量的值并且您无权更改实际脚本,您可以使用浏览器的脚本调试器。
- 火狐:https://developer.mozilla.org/en-US/docs/Tools/Debugger
- Chrome: https://developer.chrome.com/devtools/docs/javascript-debugging
一个简单的方法是在你想要的变量处设置一个断点read/change(通常是在脚本调试的行号上点击鼠标window;详情见上面的链接)然后,当脚本执行时,它将在该行运行时暂停。用鼠标悬停在变量上,或阅读右侧的信息窗格(取决于调试器和 window 配置)将显示当前值。它还使您有机会修改变量的值。您也可以在函数定义处设置断点,read/change 给函数的参数。
在 Safari、IE/Edge、Firefox 和 Chrome(基本上任何具有良好调试器工具的现代浏览器)中都是可能的。 Firefox 有一个方便的分步指南,名为 "Examine, modify, and watch variables":https://developer.mozilla.org/en-US/docs/Tools/Debugger/How_to/Examine,_modify,_and_watch_variables