首页 > 技术文章 > 全局变量

lcw5945 2015-01-06 10:56 原文

隐式声明全局变量,在没有关键字var情况下 默认为全局变量如下:

function hello(){
	str = "123"; //全局变量
}
function hello(){
	var a = b = "12"; // a 局部变量,b全局变量
}
function hello(){
              var a , b;
              a = b = "12"; // a b 局部变量
}
var a = "12";
(function (){
   alert(a); //undefined 变量声明是在函数执行之上, 全局变量a重新声明为局部变量 这里等同于 ==  var a; alert(a);
   var a;
   a = "123";
   alert(a);  // 123
})();

 

隐式全局变量和明确定义的全局变量的区别:

1. var 明确定义的隐式全局变量不可以用delete删除。

2. 无var隐式全局变量可以用delete删除。

var global_var = 1;
global_novar = 2; 		// 反面教材
(function () {
   global_fromfunc = 3; // 反面教材
}());

// 试图删除
alert(delete global_var); 	//false	
alert(delete global_novar); //true
alert(delete global_fromfunc);  /true

// 测试该删除
alert(typeof global_var);  	//number
alert(typeof global_novar); //undefined
alert(typeof global_fromfunc); //undefined

 

变量定义单var形式

function hello(){
	var a = 0,
	b = 1,
	c= 2,
	str= "123";
}

  

推荐阅读