在函数内部定义的变量加与不加var的区别,匿名函数和有名函数内声明变量的区别

时间:2022-04-02 22:15:41

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

在函数内,不加var定义的变量,会扩散到全局环境中,PS:用作递归方法时自增++用,不错,可以直接在全局环境中使用

    var liu= 0;
    function show(){
        var liu = 1;  //在定义名称的函数内 没加var的已定义全局变量liu
        var jin = 2;
    }show()
    alert(liu) // 结果是 0
    alert(jin) // 结果是 报错 not defined

在函数内,加var定义的变量老实了很多。虽然js写法很宽松,但为了减少全局环境污染,勤快一些加上var总没有坏处。