美文网首页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变量作用域:JS使用静态作用域JS没有块级作用域(全局作用域、函数作用域等)...

  • js中作用域与作用域链

    js中作用域与作用域链 作用域 *作用域基本概念 作用域一般指变量的作用范围,变量分为全局变量和局部变量,对应的作...

  • 作用域与变量提升

    作用域与变量提升 作用域 JS中变量的作用域有全局作用域和局部作用域两种,作用域简单来讲就是变量与函数的可访问范围...

  • JavaScript快速上手:关于闭包的知识分享

    JS中变量的作用域 在理解闭包之前,我们得弄清楚JS中变量的作用域原理,它分为全局作用域和局部作用域,它有一...

  • JavaScript快速上手:关于闭包的知识分享

    01 JS中变量的作用域 在理解闭包之前,我们得弄清楚JS中变量的作用域原理,它分为全局作用域和局部作用域,它有一...

  • 闭包

    导学:变量作用域:全局作用域、局部作用域 js中,函数内部可以直接读取全局变量 *链式作用...

  • 浅谈JS作用域链

    浅谈JS作用域链 作用域 作用域(scope)就是变量访问规则的有效范围。作用域外,无法引用作用域内的变量;离开作...

  • JS高级-闭包、沙箱

    作用域,作用域链,预解析 变量:局部变量、全局变量 作用域:变量的使用范围 js中没有块级作用域,一对括号中定义的...

  • JavaScript作用域的理解

    作用域:就是起作用的区域。JS的作用域规定了变量和函数可访问的范围。JS作用域分为:全局作用域和局部作用域 全局作...

  • 2019-08-13JS里面的作用域Scope

    作用域指一个变量的作用范围。 JS的作用域 在JS中,有两种作用域 全局作用域直接编写在script标签中 JS代...

网友评论

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

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