javascript - JS全局变量和局部变量具体要怎么去理解和分辨?
本文介绍了javascript - JS全局变量和局部变量具体要怎么去理解和分辨?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
刚搜了一下,发现每个人说的都不一样,有没有准确和详细一点的解释?
比如JavaScript Dom编程艺术这里面的一个关于全局变量和局部变量的例子:
function square(num) {
total = num * num;
return total;
}
var total = 50;
var number = square(20);
alert(total);
最后输出的值为400。书中原文如下:
全局变量total的值变成了400。本意是让square()函数只把它计算出来的平方值返回给变量number,但因为未把这个函数内部的total变量明确地声明为局部变量,这个函数把名字同样是total的那个全局变量的值也改变了。
把这个函数写成如下所示的样子才是正确的:
function square(num) {
var total = num * num;
return total;
}
现在,全局变量total变得安全了,再怎么调用square()函数也不会影响到它、
请记住,函数在行为方面应该像一个自给自足的脚本,在定义一个函数式,一定要把它内部的变量全部明确地声明为局部变量。如果你总是在函数里使用var关键字来定义变量,就能避免任何形式的二定义隐患。
解决方案
函数外部 定义全局变量 可以用 var 或者直接 用变量,例如:var a=1 或者 a=1
这样都是全局变量
函数里面定义全局变量 不需要var 例如a=1,如果用了var 就是表示是局部变量!
这篇关于javascript - JS全局变量和局部变量具体要怎么去理解和分辨?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文