预解释的初级理解

1.当浏览器加载html页面的时候,提供一个全局js代码执行的环境,即全局作用域
2.预解释:在当前作用域中,js代码执行之前浏览器会首先把var定义,把function定义且赋值(遇到function开一个内存空间地址,里面存函数内容的字符串)
3.预解释只发生在当前作用域,,如开始在window下预解释 函数执行的时候才会对函数中预解释因为作用域变了
4.js中内存的分类:栈内存和堆内存,栈内存用来提供js执行的环境(全局作用域 私有作用域),堆内存是存储引用数据类型的值(对象的键值对,函数存储的是代码字符串)

代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>

    <script>
    console.log(a) // undefined
    console.log(fn) // "function fn() { console.log(1); }"
        var a = 0;
        function fn () {
            console.log('2')
        }
    </script>
</body>
</html>

 点击这里查看详情

原文地址:https://www.cnblogs.com/2han/p/6266168.html