函数声明:
换个角度理解,function先提出来,先不要管var。function是一个关键字,后面接函数名字,这就是指定函数名的方式。Firefox,Safari,Chrome和Opera都给函数定义了一个非标准的name属性,通过这个属性可以访问到具体指向的函数。
//只在 Firefox,Safari,Chrome和Opera 有效
alert(functionName.name);//"functionName"
function abc(){
return 1;
}
alert(abc.name);//abc
函数内部使用var:
function add(num1,num2){
var sum = num1 + num2;//产生了一个局部变量
return sum;
}
add(10,5);//调用了一次
alert(sum);//出错,因为全局变量里没有sum的定义
可以改为:
var sum = '';
function add(num1,num2){
sum = num1 + num2;
return sum;
}
add(10,5);//调用一次add函数
alert(sum);//正常,15
继续改为:
var sum = '';
function add(num1,num2){
var sum = num1 + num2;
return sum;
}
add(10,5);//调用了一次add函数
alert(sum);
正常调用,外部有sum的定义,里面也有sum的定义(两者不相关),只是恰巧名字相同,add函数中的sum作用域只存在于本函数内,也不会复写全局变量的值。结果弹出为空。
