可能是一个愚蠢的问题,但仍然使我有些困惑,无法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/

10-13 07:04
查看更多