频道栏目
首页 > 资讯 > HTML/CSS > 正文

变量作用域(score)的使用简介

18-05-15        来源:[db:作者]  
收藏   我要投稿

. 一个变量的作用域(score)是程序源代码整这个变量的作用域。全局变量永远有全局作用域,在javascirpt代码中的任何地方都是有定义的。然而在函数内声明变量只正在函数体有定义。他们是局部变量,作用域是局部性的。函数参数也是局部变量,他们只在函数体内有定义。

在函数体内,局部变量优先于高于同名的全局变量。如果函数体内声明一个局部变量或者函数参数有变量和全局变量重名,那么全局变量会被局部变量覆盖。代码如下

var scope = 'global';        //声明一个变量
function checkscope(){
    var scope = 'local';     //声明一个同名的局部变量
    return scope;            //返回局部变量的值,而不是全局变量的值
}
checkscope()                 //=>"local"

尽管在全局作用域编写代码可以不写var语句,但声明局部变量时必须使用var语句。思考一下如果不这样会怎么样:

scope = "global";             //声明一个全局变量,甚至不用var声明
function checkscope2(){      
    scope = "locel";          //糟糕!我们刚修改了全局变量
    myscope = "locel";        //这里显示的声明了一个新的全局变量
    return [scope, myscope];  //返回两个值
}
checkscope2()                 //=>["locel","locel"]
scope                         //=>"locel":全局变量修改了
myscope                       //=>"locel":全局命名空间搞乱了

函数定义是可以嵌套的。由于每个函数都有它自己的作用域,因此会出现几个局部作用域嵌套的情况,列如:

var scope = "global scope";           //全局变量
function checkscope(){
    var scope = "local scope";        //全局变量
    function nested(){
        var scope = "nested scope";   //嵌套作用域内的局部变量
        return scope;                 //返回当前值作用域内的值
    }
    return nested();
}
checkscope()                         //=>"嵌套作用域"
相关TAG标签
上一篇:windows常用的命令行命令总结
下一篇:js继承之圣杯模式代码实例
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站