看了好多关于js解析的文章:
函数声明:
声明一个函数,脚本在执行之前会做预编译处理,会声明变量及进行初始化赋值,
变量赋值为undefined
,
函数赋值为函数的定义
。
变量赋值:
在预编译处理阶段,只会给变量分配一个内存空间,不会做初始化。初始化过程中会在执行时执行。
注意:变量真正的赋值是在解释执行阶段完成的,如果在这之前使用变量,它的值会是undefined
console.log(a); --------------------------
undefined
var a = function () {
alert("111");
}
console.log(a); --------------------------
function () {
alert("111");
}
console.log(a); --------------------------
function a() {
alert("111");
}
function a() {
alert("111");
}
console.log(a); --------------------------
function a() {
alert("111");
}