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