JS关于全局变量的问题
Posted dainney
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS关于全局变量的问题相关的知识,希望对你有一定的参考价值。
1 什么是全局变量
全局变量就是在任何函数外面声明的或是未声明直接简单使用的,全局对象有个附加属性叫做window,此window(通常)指向该全局对象本身,使用过多的全局变量会造成代码可读性降低,全局变量所占内存较大
2 解决隐含的全局变量
为什么会不自觉地创建出全局变量,首先,你可以甚至不需要声明就可以使用变量;第二,javascript有隐含的全局概念,意味着你不声明的任何变量都会成为一个全局对象属性,下面的两个例子很好的体现了,变量一定要用var 声明
function sum(x, y) //这样写会隐含全局变量 result result = x + y; return result; //正确的写法 function sum(x, y) var result = x + y; return result;
//这样当你调用这个函数时,写也会生出全局变量b
function foo()
var a = b = 0;
// ...
// 正确的写法
function foo()
var a, b;
// ... a = b = 0; // 两个均局部变量
2 隐含的全局变量跟var函数创建的区别
// 定义三个全局变量 var global_var = 1; global_novar = 2; // 反面教材,不对的 (function () global_fromfunc = 3; // 反面教材。不对的 ()); // 试图删除 delete global_var; // false delete global_novar; // true delete global_fromfunc; // true //隐式全局变量并不是真正的全局变量,但它们是全局对象的属性。属性是可以通过delete操作符删除的,而变量是不能的:
以上是关于JS关于全局变量的问题的主要内容,如果未能解决你的问题,请参考以下文章