全局变量(示例)
<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的。
时间: 2024-11-10 08:00:02