这是我的问题。
<html>
<head>
</head>
<body>
<script>
var name;
console.log(name);
name = "abcdefg";
console.log(name);
</script>
</body>
</html>
此代码的输出是
我知道第一个日志必须说未定义因为提升。
我已经尝试过刷新和删除缓存,并且不明白为什么。请帮帮我。
答案 0 :(得分:2)
name
是window
的保留变量名。因此,当您首次访问name
而不覆盖它(var name
不覆盖)时,您将获得全局属性window.name
。
在第一个console.log
的情况下,您可能会得到不同的undefined
,但不等于abcdefg
<html>
<head>
</head>
<body>
<script>
var name;
console.log(name);
name = "abcdefg";
console.log(name);
console.log(window.name);
</script>
</body>
</html>