Js 局部变量在作用域外还能被return

<script type="application/javascript">
            function demo1() {
                if (true) {
                    var s2 = "123";
                    alert(s2);
                }
                return s2;
            }

            function demo2() {
                var num = demo1();
                alert("获取s2的值"+num);
            }
</script>

s2是局部变量,为什么demo2中的num还能获取到呢

变量提升:https://www.cnblogs.com/Code-Inconnu/p/7384285.html