预解释的初级理解
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>