首页 > 代码库 > javascript中的var关键字中的文章

javascript中的var关键字中的文章

javascript在声明变量时忽略var关键字是完全合法的。JavaScript作为弱类型(loosely-typed)的语言,不声明变量类型貌似是可以理解的,但是事实不是这么的直白,因为变量的属性除了类型外,还有作用域。下面举例说明:

no.1

	<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>

no.2

	<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关键字中的文章