JavaScript:可以';是否在浏览器工具控制台中查看非全局变量?

JavaScript:可以';是否在浏览器工具控制台中查看非全局变量?,javascript,global-variables,console.log,Javascript,Global Variables,Console.log,这可能是一个愚蠢的问题,但它仍然让我有点困惑,无法100%确定答案 因此,我有一个index.html文件,它调用example.js-file中的一个函数(添加它只是为了澄清): 例如,使用浏览器中声明的变量编写“xValues”将返回“xValues未定义(…)” 删除“var xValues”使其成为一个全局变量会返回该值 我的问题是: 浏览器的工具控制台在函数中看不到非全局变量 如果是这样的话,那么这是一个寻找您错误创建的潜在全局变量的好工具吗 除了在声明这些变量的函数中使用consol

这可能是一个愚蠢的问题,但它仍然让我有点困惑,无法100%确定答案

因此,我有一个index.html文件,它调用example.js-file中的一个函数(添加它只是为了澄清):

例如,使用浏览器中声明的变量编写“xValues”将返回“xValues未定义(…)”

删除“var xValues”使其成为一个全局变量会返回该值

我的问题是:

  • 浏览器的工具控制台在函数中看不到非全局变量

  • 如果是这样的话,那么这是一个寻找您错误创建的潜在全局变量的好工具吗

  • 除了在声明这些变量的函数中使用console.log(myVariable)之外,是否有其他方法可以在浏览器的工具控制台中查看这些变量

  • 控制台必须在某个范围内运行代码(并且它不能访问由未运行的函数定义的范围)


    在函数内部设置断点,以暂停执行。当触发该断点时,控制台的作用域将是该函数的作用域。

    控制台必须在某个作用域内运行代码(并且它不能访问由未运行的函数定义的作用域)

    在函数内部设置断点,以暂停执行。当触发该断点时,控制台的作用域将指向该函数

    浏览器的工具控制台在函数中看不到非全局变量

    这就是它无法工作的原因:函数的局部变量只在函数运行时存在。您在控制台中键入的代码将在函数执行之前或之后执行。
    即使您能够在执行函数后访问局部变量:

    • 在控制台中键入
      varname
      时,您希望得到哪个值?初始值、最后一个值还是所有值
    • 如果多个函数有一个同名的局部变量怎么办
    • 如果同一个函数已经执行多次呢
    您只能检查应用程序的当前状态

    如果是这样的话,那么这是一个寻找您错误创建的潜在全局变量的好工具吗

    不可以。如果您忘记了,您应该使用这样的过梁警告您,例如
    var
    声明。同时启用:对未声明变量的赋值将抛出一个错误

    除了在声明这些变量的函数中使用console.log(myVariable)之外,是否有其他方法可以在浏览器的工具控制台中查看这些变量

    在代码中,通过devtools或通过
    调试器
    。代码执行将在断点处暂停,控制台可以访问断点处可访问的所有内容

    浏览器的工具控制台在函数中看不到非全局变量

    这就是它无法工作的原因:函数的局部变量只在函数运行时存在。您在控制台中键入的代码将在函数执行之前或之后执行。
    即使您能够在执行函数后访问局部变量:

    • 在控制台中键入
      varname
      时,您希望得到哪个值?初始值、最后一个值还是所有值
    • 如果多个函数有一个同名的局部变量怎么办
    • 如果同一个函数已经执行多次呢
    您只能检查应用程序的当前状态

    如果是这样的话,那么这是一个寻找您错误创建的潜在全局变量的好工具吗

    不可以。如果您忘记了,您应该使用这样的过梁警告您,例如
    var
    声明。同时启用:对未声明变量的赋值将抛出一个错误

    除了在声明这些变量的函数中使用console.log(myVariable)之外,是否有其他方法可以在浏览器的工具控制台中查看这些变量


    在代码中,通过devtools或通过
    调试器
    。代码执行将在断点处暂停,控制台可以访问断点处可访问的所有内容。

    设置断点并在变量被命中时检查变量,在代码中添加console.log行并写入值。设置断点并在变量被命中时检查变量,在代码中添加console.log行并写入值。
    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);  };