javascript - JS全局变量和局部变量具体要怎么去理解和分辨?

查看:69
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆