JavaScript中的变量声明提升和函数声明提升是指在代码执行前,JavaScript引擎会将变量和函数的声明从它们实际出现的位置提前到程序最上面,这样这些变量和函数就可以在它们实际出现之前就被使用了。
举个例子:
console.log(a); //undefined:变量声明被提升到程序最上面,但是赋值并没有被提升 var a = 1; console.log(a); //1:变量已经被赋值 foo(); //函数声明被提升到程序最上面,可以在调用之前使用 function foo() { console.log('Hello, world!'); }
在以上代码中,变量a
和函数foo()
的声明都被提升到了程序最上面。因为变量声明被提升,第一个console.log
输出了undefined
,只有在后面的赋值后,它才有了值。而由于函数声明被提升,foo()
函数可以在调用之前直接被使用。