控制台不输出已定义的变量

时间:2017-06-10 16:10:03

标签: javascript

该代码完美地在网页上运行。

var clock = document.getElementById('current-time');
	 
	 var d = new Date();
	 
	clock.innerHTML = d.getHours() + ':' + d.getMinutes();

当我想检查控制台中的值时,它会输出错误:

  

未捕获的ReferenceError:未定义d      at:1:1

两个注释:

  1. 我正在使用'use strict';模式

  2. 它位于document.addEventListener(“DOMContentLoaded”,函数(event){...

  3. 中)

    这些都会导致问题吗?

2 个答案:

答案 0 :(得分:0)

  

当我想检查控制台中的值时,它会输出错误

听起来您想检查开发者控制台中的值(1:1处的错误位置表示)。

在这种情况下,变量未定义,因为开发人员控制台只能看到全局范围。它就像这样做:



document.addEventListener('DOMContentLoaded', function () {
  // declare variable in inner scope
  var foo = 'bar';
});

console.log(foo); // can't see the inner scope




你能做什么(仅用于调试!):



document.addEventListener('DOMContentLoaded', function () {
  // declare variable in inner scope, but also create a global one
  var foo = window.foo = 'bar';
});

console.log(foo); // print the global 'foo'




(显然,这不起作用,因为代码段中未触发DOMContentLoaded事件。)

答案 1 :(得分:0)

我认为您正在尝试访问块级范围内的控制台中的变量。

对于您的信息,如果该变量位于功能级别范围内或回调中,则无法在浏览器控制台中访问变量。如果该变量是全局变量,您可以在控制台中访问变量