我是JavaScript的新手,正在努力学习Object和for。。循环中。
然后我在浏览器中尝试了这个代码:
const dad = {
gender: 'male',
age: 53
}
for(let prop in dad){
console.log(prop, dad[prop]);
}
它显示了一次结果,但当我再次运行时,控制台显示:
Uncaught SyntaxError: Identifier 'dad' has already been declared
我试着在谷歌上搜索并通读了范围和块范围,但仍然没有真正理解
当我尝试用外部作用域阻塞代码(将代码捕获到{}
中(或将代码放入函数中时,它工作得很好。
请帮我理解这个
控制台确实在全局范围内运行代码片段。当您第一次运行const dad
时,它确实声明了一个全局变量。现在,您可以在后续代码中参考dad
。当你第二次尝试运行它时,它会抱怨它已经被声明了——就像你写了一样
const dad = 1;
const dad = 2;
如果要重新启动,请重新加载页面。