function test() {
console.log(a);
console.log(foo());
var a = 1;
function foo() {
return 2;
}
}
相当于
function test() {
var a;
function foo() {
return 2;
}
console.log(a);
console.log(foo());
a = 1;
}
所以值 : undefined,2
var a = 1;
function fn1(a) {
alert(a); // 实参无值,所以形参undefined
a = 2
alert(a); // 2,形参被赋值
}
fn1()
alert(a) // 1,函数内部不会影响全局变量
var a = 1;
function fn1() {
alert(a); // undefined ,变量提升 。相当于var a;
var a = 2
alert(a); // 2,a被赋值
}
fn1()
alert(a) // 1,函数内部不会影响全局变量