在函数内部定义的变量加与不加var的区别,匿名函数和有名函数内声明变量的区别
2014年4月21日,14:49分:
原创:http://www.cnblogs.com/liujinyu/p/3678523.html
今天写天气网英文版的产品频道,maps页面的js时,偶然意识到一个平常老是用却没有测试的问题,就是在函数内部定义变量加var和不加var的区别,这个区别利用的好,还是很有价值的。
废话不多说上代码:
var liu= 0;
function show(){
liu = 1; //在定义名称的函数内 没加var的已定义全局变量liu
jin = 2;
}show()
alert(liu) // 结果是 1
alert(jin) // 结果是 2
function show(){
liu = 1; //在定义名称的函数内 没加var的已定义全局变量liu
jin = 2;
}show()
alert(liu) // 结果是 1
alert(jin) // 结果是 2
在函数内,不加var定义的变量,会扩散到全局环境中,PS:用作递归方法时自增++用,不错,可以直接在全局环境中使用
var liu= 0;
function show(){
var liu = 1; //在定义名称的函数内 没加var的已定义全局变量liu
var jin = 2;
}show()
alert(liu) // 结果是 0
alert(jin) // 结果是 报错 not defined
function show(){
var liu = 1; //在定义名称的函数内 没加var的已定义全局变量liu
var jin = 2;
}show()
alert(liu) // 结果是 0
alert(jin) // 结果是 报错 not defined
在函数内,加var定义的变量老实了很多。虽然js写法很宽松,但为了减少全局环境污染,勤快一些加上var总没有坏处。