一、预解释,就是当代码执行的时候。对变量的预声明。
1、第一步是首先会查找带var和function关键字的代码。对其进行预声明的过程。
对var的处理是先声明,然后赋值为undefined
function的处理是声明并赋值。此处的赋值为为function开辟一个新的堆内存空间,用于存储函数体内的字符。注意此处的存储的就是字符串,并非js代码。只有在执行的时候才会转变为js代码。
二、作用域
作用域和函数的定义有关系,和函数的执行没有关系。
三、闭包
闭包其实可以理解为,每一个函数执行都是一个闭包。在javascript高级程序设计中的说法是:在一个函数中执行另一个函数。参照高级程序3版 P178。和权威指南6版p182
新闻热点
疑难解答