javascript 可变范围相关吊装

javascript variable scope related hoistring

这是我的问题。

<html>
<head>
</head>
<body>
    <script>
        var name;
        console.log(name);
        name = "abcdefg";
        console.log(name);
    </script>
</body>
</html>

这段代码的输出是

我知道第一个日志必须说未定义,因为提升。

我已经尝试过刷新和删除缓存,但不明白为什么。请帮助我。

namewindow的保留变量名。因此,当您第一次访问 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>