js学习笔记关于函数的 全局变量 和 局部变量 示例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js学习笔记关于函数的 全局变量 和 局部变量 示例相关的知识,希望对你有一定的参考价值。

全局变量(示例)

<script>
function square(num)              /*传递参数*/
{
    total = num * num;            /*定义全局变量*/
    return total;                 /*返回数值total*/
}
var total = 50;                   /*定义全局变量total*/
var number  = square(20);         /*引用square(参数)赋值给number*/
alert(total);
alert(number);
</script>

如果没有使用 var,变量就将被视为一个全局变量,如果脚本里已经存在一个与之同名的全局变量,这个函数就会改变那个全局变量的值。

square函数中 total没有做var声明,所以是一个全局变量。square函数外同样有一个已经声明了的total变量。由于使用var(关键字)+变量名(标识符)的方式在function外部声明,即为全局变量。(全局变量声明方法之一)

由于脚本中已经存在了一个全局变量。square函数中的total(num*num赋值给total;num等于number引用square(参数)参数是20。所以是400)值将改变外部全局变量的值!

 

局部变量(示例)

<script type="text/javascript">
function square(num)
{
    var total = num * num;  /*乘法运算赋值给局部变量total*/
    return total;       /*返回值给total*/
}
var total = 50;         /*全局变量total等于50*/
var number     = square(20);/*引用square(参数)给number*/
alert(total);
alert(number);
</script>

square函数中的total声明了局部变量。函数外部虽然也声明了的total变量。但是它们是两个完全不同的变量。一个是局部变量;一个是全局变量。这就好像是同一个人有相同的名字,但是本质上他们是完全不同的两个人!

由于square函数内部引用了外部全局变量total。所以输出值是50!number输出是400.因为全局变量number引用了square(参数)并且赋值给number。所以square函数内部的 num*num乘法运算是赋值给number的。

以上是关于js学习笔记关于函数的 全局变量 和 局部变量 示例的主要内容,如果未能解决你的问题,请参考以下文章

js 关于全局变量和局部变量的简单理解

关于js中全局变量和局部变量的寄到小题

Linux C编程一站式学习笔记3

关于JS 函数里 修改 全局变量 的问题

关于JS形参是局部变量的问题

javascript学习笔记:定义函数调用函数参数返回值局部和全局变量