运行调试器时无法在调用堆栈中找到该值

时间:2017-10-13 03:29:51

标签: javascript

enter image description here

var output ="";

for(i=1;i<=20;i++)
  {
    
    if(i%3 === 0)
      {
		debugger;
        output+="Fizz";
        console.log(output);
      }
    
      
  }

我正在尝试在chrome Dev控制台中运行此代码。我添加了调试器,看看我的代码如何工作,但在“CALL STACK”值没有出现我只能看到像“ANONYMOUS”这样的消息..任何人都可以帮我找出如何在调用堆栈中看到我的程序流!!

谢谢!!!!

3 个答案:

答案 0 :(得分:1)

如果你想在循环中每次传递后看到值,请从你拥有的内容开始,然后展开&#34; Global&#34; &#34;范围&#34;中的项目控制台右侧的部分。这将显示所有全局值(由于您的代码不在函数中,因此您的全局值)。然后点击蓝色&#34;恢复&#34;按钮继续,直到下次断点被击中。

答案 1 :(得分:0)

enter image description here [enter image description here]

2你需要把你的代码放在一个函数中,如下所示在堆栈中查看,如果你直接从全局上下文运行,它将显示为匿名。

function Hello() {
        var output ="";

        for(var i=1;i<=20;i++)
        {

            if(i%3 === 0)
            {
                debugger;
                output+="Fizz";
                console.log(output);
            }


        }
    }
    Hello();

答案 2 :(得分:0)

尝试此操作并在调试器中查找以注意区别。

每次调用函数时,JS引擎都会创建一个新的执行上下文并将其放在堆栈中。

(function() {
  for (i = 1; i <= 20; i++) {
    if (i % 3 === 0) {
      debugger;
      output += "Fizz";
      console.log(output);
    }
  }
})();
相关问题