var a = 123;
function fun(){
alert(a);
}
fun(); //123
/* ******************************************** */
var a = 123;
function fun(){
alert(a);
var a = 456;
}
fun(); //undefined
alert(a) //123
/* ******************************************** */
var a = 123;
function fun(){
alert(a);
a = 456;
}
fun(); //123 函数中a = 456没有变量提前声明,所以在alert之前没有找到变量a,然后在上一级寻找到a = 123
alert(a) //456 函数中a = 456为全局变量
/* ******************************************** */
var a = 123;
function fun(a){
alert("函数内部:" + a);
a = 456; //函数参数a相当于给函数声明了变量a,所以函数内部有变量a。所以a = 456相当于给函数内部的变量a赋值,不影响全局变量。所以函数外部的alert还是123
}
fun(); //undefined
alert(a); //123
/* ******************************************** */
var a = 123;
function fun(a){
alert(a);
a = 456;
alert(a)
}
fun(678); //678 456
alert(a); //123