变量提升
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
})();
本文详细探讨了JavaScript中变量提升和函数提升的概念及工作原理。通过具体的代码示例,展示了不同情况下变量提升与函数提升的表现,并解释了为什么会出现这些现象。
1286

被折叠的 条评论
为什么被折叠?



