变量提升与函数提升
程序员文章站
2023-12-21 19:55:22
...
变量提升
var a = 5;
function fafa(){
a==6;//false
a==5;//false
var a = 6;
function test(){
a == 6;//true
}
test();
};
fafa();
实际fafa里执行顺序是:
var a;//变量提升 a=undefined
a==6;//false
a==5;//false
a = 6;
test();
——————————————————————————————————
var a = 5;
function fafa(){
a == 5; //true
function test(){
a == 5;//true
}
test();
};
fafa();
函数内未定义a,则去函数外找。
函数提升
js中创建函数有两种方式:函数声明式和函数字面量式。只有函数声明才存在函数提升!
console.log(f1); //[Function: f1]
console.log(f1()); //f1
console.log(f2); //undefined
//console.log(f2()); //报错
function f1() {return 'f1'} //函数提升
var f2 = function() {return 'f2'}; //函数为提升
(function() {
console.log(a); //undefined
a = 'aaa';
var a = 'bbb';
console.log(a); //bbb
})();