2
a = 2; var a; console.log(a); // 2
undefined
console.log(2); // undefined var a = 2;
函数被提升
foo(); function foo() { console.log( a ); //undefined var a = 2; }
相当于:
function foo() { console.log( a ); //undefined var a = 2; } foo();
TypeError
foo(); // 不是ReferenceError, 而是TypeError! var foo = function bar() { // ... }
函数优先
foo(); //1 var foo; function foo() { console.log(1); } foo = function() { console.log(2); }
覆盖
foo(); //3 function foo() { console.log(1); } var foo = function() { console.log(2); } function foo() { console.log(3); }
if else
foo(); // "b" var a = true; if(a) { function foo() { console.log("a"); } }else{ function foo() { console.log("b"); } }
《你不知道的JavaScript(上卷)》笔记:提升
猜你喜欢
转载自blog.csdn.net/wuweitiandian/article/details/79438448
今日推荐
周排行