首页 > 专栏 > 前端 > 文章详情
函数声明和函数表达式中 var 关键字的使用 发布于:2021-03-05 15:08:26   原创发表   查看:4  讨论:0
函数声明: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作用域只存在于本函数内,也不会复写全局变量的值。结果弹出为空。

评论

  • 匿名