【问题标题】:Console doesn't output defined variable控制台不输出定义的变量
【发布时间】:2023-04-05 02:50:02
【问题描述】:

代码在网页上完美运行。

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

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

Uncaught ReferenceError: d is not defined 在:1:1

两个音符:

  1. 我正在使用“使用严格”;模式

  2. 在 document.addEventListener("DOMContentLoaded", function(event) {...

这些都会导致问题吗?

【问题讨论】:

  • 为什么不向我们展示包括 HTML 在内的所有代码?
  • 如果使用 HTML,请至少提供一个有效的 sn-p
  • 请发complete example;到目前为止您发布的代码运行良好...
  • 显示有效的代码并就您未显示的其他代码寻求帮助...您究竟希望任何人提供帮助?

标签: javascript


【解决方案1】:

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

听起来您想在开发者控制台中检查该值(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'

(显然,这不起作用,因为在 sn-p 中没有触发 DOMContentLoaded 事件。)

【讨论】:

    【解决方案2】:

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

    请注意,如果该变量在函数级别范围内或在回调中,则您无法在浏览器控制台中访问该变量。如果该变量是全局变量,您可以在控制台中访问变量

    【讨论】:

      猜你喜欢
      • 2012-09-18
      • 1970-01-01
      • 2021-03-24
      • 2020-05-07
      • 1970-01-01
      • 2014-05-14
      • 2021-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多