const,let,var

const,let,var都可以用来声明变量

const关键字

const声明的变量必须直接初始化且不允许二次赋值,如下代码:

<script type="text/javascript">
	const name="Tom";
	console.log(name);
	name="Tim";//报错:TypeError: invalid assignment to const `name'
	console.log(name);
</script>

报错:TypeError: invalid assignment to const `name’

let关键字

和var一样,let也用于声明变量,那么var声明的变量和let声明的变量有何不同:

a、全局作用域:

let声明的变量不会作为全局对象window的属性,而var声明的变量则可以,如下代码:

<script>
	let address="河南省郑州市高新区";
	console.log(address);
	console.log("0");
    console.log(window.address);//undefined

	var add="河南省郑州市高新区";
	console.log(add);
	console.log("0");
    console.log(window.add);
</script>

输出
在这里插入图片描述

函数作用域

和var一样,都用于声明变量,此时两者没有区别
代码示例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script>
			function t(){
				var nameN="tom";
				console.log(window.nameN);
				console.log(nameN)
				
				console.log("0");
				let age=12;
				console.log(window.age);
				console.log(age);
				
			}
			t();
		</script>
	</body>
</html>

输出示例
在这里插入图片描述
c、语句块作用域:

let声明的变量只能用于语句块作用域内,而var声明的变量还可以在语句块作用域外使用

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			/*if(true){
				let address="河南省郑州市高新区";
				console.log(address);
			}
			console.log(address);//ReferenceError: address is not defined*/
			
			if(true){
				var address="河南省郑州市高新区";
				console.log(address);
			}
			console.log(address);

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

验证var可以在语句块作用域外使用
在这里插入图片描述
验证let声明的变量只能语句块内使用
在这里插入图片描述
d、重复声明:

let不能重复声明变量,var则可以

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			let address="河南省郑州市高新区";
			let address = "吉林省长春市宽平区";
			console.log(address); //let不能重复声明  var可以
			
		</script>

	</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值