美文网首页JavaScript程序员
JS——变量的作用域

JS——变量的作用域

作者: sky丶星如雨 | 来源:发表于2017-03-15 10:14 被阅读69次

    JS中变量的作用域问题,对于初学者来说,理解的并不是很透彻,下面,我用较短的篇幅来简单谈一下。

    变量分为两种,一种是全局变量,一种是局部变量,在讨论该变量为哪一种变量时,本质上,就是在讨论变量的作用域。

    全局变量:即可以在脚本中任何位置被引用的变量,甚至在函数内部,也可以引用,这说明,全局变量的作用域是整个脚本。

    局部变量:即只存在于声明它的函数的内部,在此函数外部,无法引用该变量,也就是说,局部变量的作用域仅限于某个特定的函数。

    那么,如何分辨两者呢,其实很简单,我们都知道,JS中,变量是通过var来声明的,如果在某个函数中使用var来声明变量,那么,此变量即为局部变量,它的作用域就仅限此函数内部,如果在此函数中声明时,没有使用var,那么此变量即为全局变量,如果整个代码中,有一个与此变量同名的全局变量,这个函数就会改变那个全局变量的值。

    举个例子来说明:

    function  count(num) {

    total= num + num;

    return  total;

    }

    var  total=50;

    count(10);

    alert(total);

    这里函数中的total没有使用var声明,所以,此时total的作用域为全局,而代码中已有一个名为total的变量,所以,函数中声明的total改变了函数外total的值,此时,alert输出20;

    很多时候,我们都需要避免这种情况的发生,那么只需将函数内变量使用var声明即可,将它的作用域限制在函数体内部,即

    function  count(num) {

    var  total= num + num;

    return  total;

    }

    此时,total的作用域就只是此函数内部,而不会影响到全局。

    相关文章

      网友评论

        本文标题:JS——变量的作用域

        本文链接:https://www.haomeiwen.com/subject/afxlnttx.html