刚搜了一下,发现每个人说的都不一样,有没有准确和详细一点的解释?
比如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关键字来定义变量,就能避免任何形式的二定义隐患。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
函数外部 定义全局变量 可以用 var 或者直接 用变量,例如:var a=1 或者 a=1
这样都是全局变量
函数里面定义全局变量 不需要var 例如a=1,如果用了var 就是表示是局部变量!
如果你能用
window访问到,那就是全局的。ES6之前 js 只有函数作用域,ES6开始引入块级作用域。全局变量就是在整个script里面都可以用到 局部变量就是在某个函数中定义的,只能在这个函数里面使用