预编译过程
:语法检测
预编译如果出错(编译错误),则当前整个script中的代码不执行,继续寻找下一个script标签
执行过程
:预编译通过,在一行一行从上到下执行代码
执行过程中,如果有错误(执行错误),当前这个script标签中出错之前的代码正常执行,之后的代码不执行,继续寻找下一个script标签
变量可以先使用在声明,函数可以先使用在定义
执行代码之前先进行变量的提升
,在执行函数预加载
。如:
var f1 = 100;
function f1() {
console.log(200);
}
//现在f1是什么(f1是100)
console.log(f1)
提升之后
把变量的声明
和函数的定义
提到最前面,然后进行赋值
操作
var f1;
function f1() {
console.log(200);
}
console.log(f1)//这里f1是函数
f1 = 100;
console.log(f1)//这里f1是100,把函数覆盖了
如果存在同名的变量和函数始终是后来的覆盖前面的(这里的后来是进行变量和函数提升之后)
网友评论