该代码完美地在网页上运行。
var clock = document.getElementById('current-time');
var d = new Date();
clock.innerHTML = d.getHours() + ':' + d.getMinutes();
当我想检查控制台中的值时,它会输出错误:
未捕获的ReferenceError:未定义d at:1:1
两个注释:
我正在使用'use strict';模式
它位于document.addEventListener(“DOMContentLoaded”,函数(event){...
这些都会导致问题吗?
答案 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)
我认为您正在尝试访问块级范围内的控制台中的变量。
对于您的信息,如果该变量位于功能级别范围内或回调中,则无法在浏览器控制台中访问变量。如果该变量是全局变量,您可以在控制台中访问变量