js笔记一
1.预解释
什么是预解释?
浏览器在执行js代码之前,会找到所有带var 和 function的关键字,提前声明,找完之后,从上到下执行代码。
var 预解释 只声明,未定义
只声明,未定义define,默认值是undefined
console.log(a); // undefined var a = 5;
没有var , 会报错
console.log(b); // 报错 b = 5;
function 预解释
与var 不同,声明和定义一起完成
预解释只发生在当前作用域,一开始只预解释window作用域下的代码,在执行function时,再次重新预解释function内部的代码。
其中在window作用域下,预解释function(){},内部代码只被看做是字符串,在function执行时,内部代码才生效。
function当中return后面的返回值是不预解释的,提前调用会报错。
例:
alert(n);
var n = 9;
function fn1(){
alert(n);
n = 7;
var n = 6;
}
fn1();
alert(n)
回答,三个alert的值。
预解释发生在一个脚本块当中,不同的脚本块中不预解释。
一个函数A执行完毕,内存自动销毁,如果这个A函数内部return了另一个B函数,而在外面又调用了这个B函数,A函数形成的作用域就不会销毁。

浙公网安备 33010602011771号