js的运行机制问题

转自:https://www.cnblogs.com/Jabin/p/5804052.html

 如果想要对函数有更深刻的理解,或者正确认识函数!需要我们先做一件事,那就是了解js的运行机制问题:
        1、在js中js引擎会优先解析var变量和function定义!在预解析完成后从上到下逐步进行!
        2、解析var变量时,会把值存储在“执行环境”中,而不会去赋值,值是存储作用!例如:
        alert(a);  var a = 5;  这时会输出undifiend,意思是没有被初始化没有被赋值!
        这并不是没有被定义,错误了的意思!
        3、在解析function时会把函数整体定义,这也就解释了为什么在function定义函数时为什么可以先调用后声明了!其实表面上看是先调用了,其实在内部机制中第一步实行的是把以function方式定义的函数先声明了!

原文地址:https://www.cnblogs.com/doveshelly/p/8747942.html