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.遇到函数时:因为变量是有作用域的。
什么情况下会改变预解析赋予的初始值?
有赋值功能的符号 = += *= /= ++ --