(function(){
var a = b = 5;
})();
console.log(b);//5,变量a使用关键字var声明,为函数的局部变量,b为全局变量
console.log(a);//Uncaught ReferenceError: a is not defined(捕获一个引用错误,a未定义)
声明提升(Hoisting)
function test() { function test() {
console.log(a); var a;
console.log(foo()); function foo(){ return 2; }
var a = 1; console.log(a)
function foo() { console.log(foo())
return 2; a = 1 ;
} }
}
test();//undefined 2 test()
左侧等同于右侧,变量和函数声明提升到函数顶部,但变量不分配任何值
var c = 1 ;
function c(c) {
console.log(c)
var c = 3
}
console.log(c) // 1
console.log(typeof c) // number
c(2) // Uncaught TypeError: c is not a function