可能是一个愚蠢的问题,但仍然使我有些困惑,无法100%确定答案。
所以我有一个index.html文件,该文件在example.js文件中调用一个函数(只是为了说明而添加):
function sinusGraph() {
var plotstart = 0,
plotrange = 20,
stepsize = 0.5; // not in use right now
var yValues, xValues;
function sinusValues(startinput, stopinput)
{
return d3.range(startinput, stopinput+1).map(function(i)
{
return Math.sin(i);
})
};
function xAxisValues(startinput, stopinput)
{
return d3.range(startinput, stopinput+1).map(function(i)
{
return i;
})
};
xValues = xAxisValues(plotstart, plotrange);
yValues = sinusValues(plotstart, plotrange); };
例如,使用在浏览器的返回中声明的变量编写“ xValues”,则“ xValues未定义(...)”。
删除使其成为全局变量的“ var xValues”不会返回该值。
我的问题:
浏览器的工具控制台看不到函数中的非全局变量吗?
如果是这样,那么这是否是查找错误创建的潜在全局变量的好工具?
除了在声明它的函数内使用console.log(myVariable)之外,是否有其他方法可以在浏览器的工具控制台中查看这些变量?
最佳答案
浏览器的工具控制台看不到函数中的非全局变量吗?
是。
这就是为什么它不起作用的原因:函数的局部变量仅在函数运行时存在。您在控制台中键入的代码将在函数执行之前或之后执行。
即使执行函数后您能够访问局部变量:
在控制台中键入varname
时,您希望获得哪个值?初始值,最后值还是所有值?
如果多个函数的局部变量具有相同的名称怎么办?
如果同一个功能已经执行了多次,该怎么办?
您只能检查应用程序的当前状态。
如果是这样,那么这是否是查找错误创建的潜在全局变量的好工具?
不能。您应该使用诸如ESLint之类的短绒棉布,如果您忘记例如var
声明。同时启用strict mode:对未声明变量的赋值将引发错误。
除了在声明它的函数内使用console.log(myVariable)之外,是否有其他方法可以在浏览器的工具控制台中查看这些变量?
通过devtools或通过debugger
在代码中使用Set a break point。代码执行将在断点处暂停,并且控制台可以访问该断点处可访问的所有内容。
关于javascript - JavaScript:无法在浏览器工具控制台中查看非全局变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40266413/