浅谈JavaScript中的变量提升

今天我给大家分享JavaScript中的变量提升,这是java中变有的概念,在这里我将会结合java作一个简单的比较。
请看下面JavaScript的代码:
<script type="text/javascript">
		var a = 11;
		document.write(a);   //11
		document.write(b);  //undefined
		var b = 111;
</script>

大家可以看到上面的代码中,变量b在打印语的后面输出了,却没有报错。这是为什么呢?相信有点java基础的很难相信不会报错,当初我学习的时候也是这样的。下面我解释一下,这是为什么?原因是在JavaScript编译的时候会把<script></script>中的所有变量都提升上来,然后赋值为undefined。然后依然向下执行script语句,直到遇到赋值语句时才会把值赋给变量。从上面的代码可以看到,变量a在打印前初始化了,而变量b在打印后初始化,这才导致结果和想象中的不一样,所以我在里强调大家一句,在写js代码时一定要把所有变量都定义在开头。

下面再下看一段简单的java代码:
public class Test {


	public static void main(String[] args){
		
		int a = 11;
		System.out.println(a);
	//	System.out.println(b);   //b cannot be resolved to a variable
		int b = 111;
	}
}

上面的java代码连编译都通不过,报错说,变量b没有定义。这也就是JavaScript和Java的不同之处。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38571398/article/details/78374755
文章标签: javascript 博客
个人分类: JavaScript
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭