首页 > 技术分享 > JavaScript
收藏

详细了解JS定义全局变量的规则

03/11 20:11
大潇博客 原创文章,转载请标明出处

初学JS时,大部分可粗略知道,定义变量使用var,若定义变量时前边没有写var,则定义为全局变量

但遇到函数时,一些细节可能可能会影响变量的使用范围

下面通过实际案例说明:


a=6,b=8;

function func1(){

var a,b;

var p = '369';

p=="333" ? (a=1,b=2) : p=='666' ? (a=2,b=3) : p=="999" ? (a=3,b=4) : (a=4,b=5);

alert(a)

alert(b)

}

function func2(){

alert(a);

alert(b);

a=1,b=2

}

func1();

func2();

alert(a);

alert(b);

//上面的代码首先会弹出 4和5,然后弹出 6和8,最后弹出 1和2


解释:虽然外面定义了全局变量,但fun1函数内部再次使用var定义变量,导致变量a和b变为func1函数内的局部变量

因为在函数内部使用了“var”定义变量,所以函数里再次进行赋值时,不论有没有“var”,此时都已成为函数内的局部变量,归属权无法再改变


在func2函数中,没有定义a和b就直接使用,这时使用了外面定义的全局变量

函数末尾没有使用var,直接改变a和b的值,这等于修改全局变量的值,所以最后a和b的值变为1、2


打赏

阅读排行

大家都在搜

博客维护不易,感谢你的肯定
扫码打赏,建议金额1-10元
  • 15601023311