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