控制台不输出定义的变量
2017-06-10
339
代码在网页上运行完美。
var clock = document.getElementById('current-time');
var d = new Date();
clock.innerHTML = d.getHours() + ':' + d.getMinutes();
当我想在控制台中检查值时,它会输出错误:
Uncaught ReferenceError: d is not defined at :1:1
两点说明:
-
我使用的是“use strict”模式
-
它位于 document.addEventListener("DOMContentLoaded", function(event) {...
这些中的任何一个都会引起问题吗?
2个回答
When I want to check the value in console it outputs an error
听起来您想检查开发者控制台中的值(错误位置
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
事件。)
PeterMader
2017-06-10
我认为您正在尝试访问控制台中块级范围内的变量。
供您参考,如果变量在函数级范围内或回调中,则您无法访问浏览器控制台中的变量。如果该变量是全局变量,则可以访问控制台中的变量
Dinesh undefined
2017-06-10