1.变量声明提升
js引擎会把变量声明与函数声明都提升到当前函数的顶部。eg:
console.log('x' in window);//true
var x;
x = 0;
js引擎编译为
var x;
console.log('x' in window);//true
x = 0;
2.函数表达式
对于函数的声明有
var Foo = function(){}
function Foo(){}
前者为函数表达式,后者为函数声明
js会把函数表达式拆分为两行分别执行。例如:
var x=1;
function x(){}
执行时为先把函数表达式拆分,然后变量变量提升
function x(){}
console.log(x);
x=1
网友评论