标签:javascript var
javascript在声明变量时忽略var关键字是完全合法的。JavaScript作为弱类型(loosely-typed)的语言,不声明变量类型貌似是可以理解的,但是事实不是这么的直白,因为变量的属性除了类型外,还有作用域。下面举例说明:
<script language="javascript"> var a = 0; document.write(a + '<br>'); var b = 1; function foo() { document.write(b+ '<br>'); document.write(window.b); var b = 1; } foo(); </script>结果展示:
0
undefined
1
note:变量提升Hoisting:执行前,代码在加载到内存中,,function中的变量的声明会“提”到function的最前面,其它的顺序不变。但是在实际开发中不提倡写在后面,上面的funtion等同于:
<script language="javascript"> var a = 0; document.write(a + '<br>'); var b = 1; function foo() { var b document.write(b+ '<br>'); document.write(window.b); b = 1; } foo(); </script>
<script language="javascript"> a = 0; document.write(a + '<br>'); b = 1; function foo() { document.write(b+ '<br>'); document.write(window.b+ '<br>'); b = 2; document.write(b+ '<br>'); document.write(window.b); } foo(); </script>
0
1
1
2
2
总结:var声明的是局部变量(拓展:作用域的范围),若是不带var,变量默认是全局的。
标签:javascript var
原文地址:http://blog.csdn.net/tpxwantpxwan/article/details/38898747