javascript中的var关键字

本文详细探讨了JavaScript中变量声明时忽略var关键字的影响,并通过示例展示了变量提升(Hoisting)的概念及其工作原理。此外,还对比了使用var声明变量与直接赋值的区别,以及函数声明与函数表达式在提升过程中的不同表现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

等同于:

		<script language="javascript">
		var a = 0;
		document.write(a + '<br>');
		var 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>

总结:var声明的是局部变量(拓展:作用域的范围),若是不带var,变量默认是全局的

相关内容:函数提升

函数提升 
函数提升是把整个函数都提到前面去。 
在我们写js code 的时候,我们有2中写法,一种是函数表达式,另外一种是函数声明方式。我们需要重点注意的是,只有函数声明形式才能被提升。 

函数声明方式提升【成功】 

	<script type="text/javascript">
	function myTest(){ 
		foo(); 
		function foo(){ 
		alert("我来自 三门"); 
		} 
		} 
		myTest(); 
	</script>
函数表达式方式提升【失败】

	<script type="text/javascript">
	function myTest(){ 
		foo2(); 
		var foo2 =function foo(){ 
		alert("我来自 foo"); 
		} 
		} 
		myTest(); 
	</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值