Javascript中解释型 与 编译型
编译型,执行代码后生成一个可执行性文件,exe的二进制文件
解释型,直接读取代码段,遇见一行解释一行
为什么可以先调用函数,后定义函数??
从变量作用域和函数执行的过程综合考虑,在代码解释的过程中,因为我们可以在函数定义之前就调用这个函数,说明我们在解释代码的过程中就已经将函数的定义告知我们的javascript解析器,在告知javascript解析器的过程中,会将javascript的所有的局部变量同时告知javascript解析器,但是并不是使用真实的值,而是全部设置为undefined
var v1 = 'global';
function f1() {
alert(v1);//undefined?
var v1 = 'function';
alert(v1);//function?
}
f1();
alert(v1);//global?