JavaScript变量提升

79 阅读1分钟

悬挂变量声明(变量提升)

js 会提升所有变量声明,将变量移到当前作用域的顶部

js 引擎的工作方式是

1、先解析代码,获取所有被声明的变量

2、然后在运行,分为预处理和执行两个阶段

<script>
    function fun() {
        // var str;
        console.log(str) // undefined
        var str = '123'
        console.log(str) // 123
    }
    fun()
</script>
<script>
    // var str
    console.log(str) // undefined
    var str = "123"
</script>
<script>
    // var str
    console.log(str) // undefined
    if(false) {
        var str = "123"
    }
    console.log(str) // undefined
</script>
<script>
    // function fun
    fun() // true
    function fun() {
        console.log("123")
    }
    fun() // true
</script>