js中let和var的区别

Posted 考拉的墨尔本

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中let和var的区别相关的知识,希望对你有一定的参考价值。

js中使用let定义变量的时候,是需要使用严格模式的,我看到网上有的博客说:如果在不使用严格模式的情况下,使用let会报错,但是在实验的过程中,我直接定义了let变量而且也没有使用严格模式,并没有报任何的错误。所以使用let的时候不使用严格模式会报错的情况不做过多的解释。

我们在使用let的时候添加上'use strict'即可,按照要求来使用let。

1.声明之后未赋值的情况,表现相同,都是undefined

	<script type="text/javascript">
    		'use strict';
    		(function()
    			var a;
    			let b;
    			console.log(a);//输出undefined
    			console.log(b);//输出undefined
    		)();
    	</script>

2.重复声明同一个变量名并且两者的作用域相同的情况下,表现是不同的

	<script type="text/javascript">
    		'use strict';
    		(function()
    			var a='kka';
    			let b='akk';
    			//重新赋值
    				var a='kkaNew';
    				let b='akkNew';
    			console.log(a);//输出kkaNew
    			console.log(b);//程序报错       Uncaught SyntaxError: Identifier 'b' has already been declared
    		)();
    	</script>

3.如果还是同一个变量名,但是作用域不同的情况下,两者的表现也是不同的

	<script type="text/javascript">
    		'use strict';
    		(function()
    			var a='kka';
    			let b='akk';
    			//重新赋值
    			if(true)
    				var a='kkaNew';
    				let b='akkNew';
    			
    			console.log(a);//输出kkaNew
    			console.log(b);//输出akk
    		)();
    	</script>
	//说明在var定义变量的时候''里面的a和外面的a是同一个,所以a的值会被覆盖掉
	//使用let定义变量的时候''里面的b和外面的b不是同一个,所以b的值并没有发生改变

以上是关于js中let和var的区别的主要内容,如果未能解决你的问题,请参考以下文章

js中let和var定义变量的区别

js中let和var的区别

在js中let和const,var的区别

js中let和var定义变量的区别

js中let和var定义变量的区别

ts和js中let和var定义变量的区别