JS变量前不加var的影响
2016-10-15 15:46
169 查看
再次强调下变量的作用域:(给小白看的)
js中变量作用域可分为:"全局变量"和"局部变量"
"全局变量":声明在函数之外的变量
"局部变量":声明在函数体中的变量,并且只能在当前函数体内访问
但有一种情况,我们在定义变量时可能会忘记加变量名前面的 var 关键字。
这样会发生什么呢?
我们做下实验,代码如下:
function test() {
a = 30;
var b = 10;
}
test();
window.alert("a="+a);
window.alert("b="+b);
运行结果是游览器把函数内部的变量a弹出了a = 30,而同样在函数内部的变量b却没有弹出。
结果表明:在JS中,如果在函数内部定义变量时不加var,则判定为全局变量,加上var则为正常的局部变量。
即,在声明变量时凡是没有var关键字,而直接赋值的变量均为全局变量。
注意:上述变量声明时,不加var的用法不推荐使用,我们要尽量避免。(容易造成数据污染)
js中变量作用域可分为:"全局变量"和"局部变量"
"全局变量":声明在函数之外的变量
"局部变量":声明在函数体中的变量,并且只能在当前函数体内访问
但有一种情况,我们在定义变量时可能会忘记加变量名前面的 var 关键字。
这样会发生什么呢?
我们做下实验,代码如下:
function test() {
a = 30;
var b = 10;
}
test();
window.alert("a="+a);
window.alert("b="+b);
运行结果是游览器把函数内部的变量a弹出了a = 30,而同样在函数内部的变量b却没有弹出。
结果表明:在JS中,如果在函数内部定义变量时不加var,则判定为全局变量,加上var则为正常的局部变量。
即,在声明变量时凡是没有var关键字,而直接赋值的变量均为全局变量。
注意:上述变量声明时,不加var的用法不推荐使用,我们要尽量避免。(容易造成数据污染)
相关文章推荐
- 【Js】声明变量中var和作用域关系
- JS全局变量var与this
- JS:var 变量=变量 && 变量
- js的链式作用域和var变量声明
- js中,var 修饰变量名,它可有可无吗?
- js for循环,为什么一定要加var定义i变量
- js中函数提升及var变量提示
- js 变量声明 (var使用与不使用的区别)
- js中 声明变量时: var $i 和 var i 有什么区别吗 各自是什么意思
- Js变量定义——fn里 var与不var的区别
- JS中VAR的用处(局部变量要用var来声明,全局变量不加var)
- js-var变量作用域
- JS全局变量VAR和THIS
- js中我定义一个var变量,在页面想显示出来,用什么东西显示比较好,var比较长还有空格
- extjs特殊用法--js--调用变量方法定义前提最先变量要用var定义
- js变量前有 var 与没有的区别
- js声明变量使用var声明与不使用var声明比较
- [js综合问题汇总]js窗口关闭事件,表单名称,父窗口子窗口,var变量名
- js变量初始化影响关键字导致frame跳转出错
- js var变量具体含义和用法