今天做了一份公司的笔试题目,把js中变量提升的知识写下来。
var num = 1;
function test(){
console.log(num);
var num = 2;
console.log(num);
}
test();
输出结果为undefined 和 2.
test1();
test2();
function test1(){
alert(1);
}
var test2 = function(){
alert(2);
}
上面代码使用声明式和字面量两种方式创建函数。
这里涉及到JavaScript中变量提升和函数提升的知识。
在js中,每一个执行环境中的变量声明都会提升到该执行环境的最顶端。
对于函数,只有函数声明式也就是test1()可以进行函数提升被调用,但test2()不行。