首页 > 代码库 > js学习笔记(二)关于函数的 全局变量 和 局部变量 示例

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学习笔记(二)关于函数的 全局变量 和 局部变量 示例