JanaScript预解析

JS预解析是什么?
      在当前的作用域下,js运行之前.会有带有 var 和 function关键字的代码事先声明,
      并在内存中安排好,然后从上到下的执行js代码.

JS预解析 js逐行执行 

js对什么进行预解析
      1> var 后面的变量
      2> 函数
      3> 函数传参的变量

1.通过var关键字定义的变量进行预解析的时候,都是声明declare,不管他有没有赋值,都会赋值为undefined。
凡是传参,直接赋值
alert(a);
var a = 1;
alert(b);
var b = function(){

}
alert(c);
var c;

2.function进行预解析的时候,声明而且定义了define,但它存储数据的那个空间存储的是代码是字符串,没意义 


     alert(a);//函数的字符串
 function a(){
 alert("预解析的function1")
}

3.预解析中想实现立即执行的函数 放到()一对括号当中去

(function fn(){
alert("预解析的function1")
  }(2));闭包

(function(){
alert("预解析的function2")
  }());

js在什么情况下会进行预解析
1.遇到<script><\script>标签对时
2.遇到函数时:因为变量是有作用域的。

什么情况下会改变预解析赋予的初始值?

 有赋值功能的符号 = += *= /= ++ --

posted @ 2017-06-20 07:56  SailrMoon  阅读(311)  评论(0编辑  收藏  举报