javascript 是弱数据型语言,也就是说声明变量时不需要指定数据类型。而是在执行时由浏览器中的js引擎来决定。
一般来说,我们需要用var来声明变量,但是写不写有什么区别呢?
先看一段代码:
<script type="text/javascript">
var a=3;
function test1(){
a=100;
}
test1();
alert(a);
var b=3;
function test2(){
var b=100;
}
test2();
alert(b);
c=3;
function test3(){
c=100;
}
test3();
alert(c);
</script>
运行结果为 100 ,3 ,100
经过测试,就结果就很清楚了。在局部环境中,变量如果没有用var 来声明,直接进行赋值,那么这个局部的变量会被javascript当成全局变量。要命的是,如果这个变量是一个函数,那结果就可想而知的惨了。
也就是说,如果你不用var,那么这个js引擎会一层一层地向上找父作用域中的变量,如果找到了,就用,如果找不到了,就会帮你定义一个全局的变量。上面这个例子充分说明了这一点。所以,如果你想在当前的作用域用声明变量,你一定要用var。