关于let var 和const的区别以及使用

var的说明

1.可以提升自己的变量

例如:

            console.log(a);
			var a;
			a=100;
			console.log(a);

输出

undefined

100

2.变量的值可以进行更改

例如:


			var a=100;
            console.log(a);
			a=200;
			console.log(a);

输出:

100

200

3.变量在全局作用域

例如:

            var a=100;
			console.log(a);
			function change(){
				if(true){
					a++;
				}
				return a;
			}
			console.log(change());

输出:

100

101

let的说明

1.不可以提升自己的变量

            console.log(b);
			let b=100;

输出:

Cannot access 'b' before initialization

2.变量的值可以进行更改

             let b=100;
			 console.log(b);
			 b=200;
			 console.log(b);

输出

100

200

3.块级作用域下的变量,在别的函数作用域下,不可以使用

            if (true) {
				let b = 100;
				console.log(b);
			}
			console.log(b);

输出:

100

b is not defined

const的说明

1.可以提升自己的变量

            console.log(a);
			const a=15;

输出:

Cannot access 'a' before initialization

2.简单型数据变量的值不可以进行更改;当不涉及地址改变时,复杂型数据型变量的值(如数组,对象等)可以进行更改;当涉及地址改变时,复杂型数据型变量的值(如数组,对象等)不可以进行更改;

例如:

			const person=['Wei','Uzi','Xiaohu','Ming'];
			console.log(person);
			person[1]='Gala';
			console.log(person);
			
			const team={
				Lpl:'Ig',
				Lck:'Skt',
				Lec:'Fnc'
			}
			console.log(team);
			team.Lpl='Rng';
			console.log(team);
			
			person=['Cryin','Gala','Wei','Xiaohu'];
			console.log(person);
			team={
				Lpl:'fpx',
				Lck:'Dk',
				Lec:'G2'
			}
			console.log(team);

输出:

["Wei", "Uzi", "Xiaohu", "Ming"]

["Wei", "Gala", "Xiaohu", "Ming"]

{Lpl: "Ig", Lck: "Skt", Lec: "Fnc"}

{Lpl: "Rng", Lck: "Skt", Lec: "Fnc"}

Assignment to constant variable.

Assignment to constant variable.

3.块级作用域下的变量,在别的函数作用域下,不可以使用

例如:

            if (true) {
				const a = 1999;
			}
			console.log(a);

输出:

a is not defined

关于let的更多应用,比如遍历循环时,可以用let代替var

   <!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<button>搜索1</button>
		<button>搜索2</button>
		<button>搜索3</button>
		<button>搜索4</button>
		<script>
			var btns = document.querySelectorAll('button');
			//错误示例
			// for (var k = 0; k < btns.length; k++) {
			// 	btns[k].onclick = function() {
			// 		for (var i = 0; i < btns.length; i++) {
			// 			btns[i].innerText = '搜索' + i;
			// 		}
			// 		btns[k].innerText = '搜索我啊,小笨蛋,(๑′ᴗ‵๑)I Lᵒᵛᵉᵧₒᵤ❤'
			// 	}
			// }//会先编译for循环,然后找不到btns[k=4]这个按钮,因此会报错
			//正确示例
			// 1.如立即执行函数
			for (var i = 0; i < btns.length; i++) {
				(function(e) {
					btns[e].onclick = function() {
						for (var i = 0; i < btns.length; i++) {
							btns[i].innerText = '搜索' + i;
						}
						btns[e].innerText = '搜索我啊,小笨蛋,(๑′ᴗ‵๑)I Lᵒᵛᵉᵧₒᵤ❤'
					}
				})(i) //i作为实参传递给形参e
			}
			//2.利用es6新语法,let变量

			for (let k = 0; k < btns.length; k++) {

				btns[k].onclick = function() {
					for (var i = 0; i < btns.length; i++) {
						btns[i].innerText = '搜索' + i;
					}
					btns[k].innerText = '搜索我啊,小笨蛋,(๑′ᴗ‵๑)I Lᵒᵛᵉᵧₒᵤ❤'
				}
			}

		</script>
	</body>
</html>

至于效果,就你们自己点击啦!

最后,感谢大家的观看,点赞收藏支持一下,谢谢各位!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值