var、let、const的区别

  1. var定义的变量,没有块的概念,可以跨块访问, 不能跨函数访问。
  2. let定义的变量,只能在块作用域里访问,不能跨块访问,也不能跨函数访问。
  3. const用来定义常量,使用时必须初始化(即必须赋值),只能在块作用域里访问,而且不能修改。
  4. 同一个变量只能使用一种方式声明,不然会报错
cpp 复制代码
<script type="text/javascript">
	// 块作用域
	{
		var a = 1;
		let b = 2;
		const c = 3;
		// c = 4; // 报错
		
		// let a = 'a';	// 报错  注:是上面 var a = 1; 那行报错
		// var b = 'b';	// 报错:本行报错
		// const a = 'a1';	// 报错  注:是上面 var a = 1; 那行报错
		// let c = 'c';	// 报错:本行报错

		var aa;
		let bb;
		// const cc; // 报错
		console.log(a); // 1
		console.log(b); // 2
		console.log(c); // 3
		console.log(aa); // undefined
		console.log(bb); // undefined
	}
	console.log(a); // 1
	// console.log(b); // 报错
	// console.log(c); // 报错

	// 函数作用域
	(function A() {
		var d = 5;
		let e = 6;
		const f = 7;
		console.log(d); // 5
		console.log(e); // 6  (在同一个{ }中,也属于同一个块,可以正常访问到)
		console.log(f); // 7  (在同一个{ }中,也属于同一个块,可以正常访问到)
	})();
	// console.log(d); // 报错
	// console.log(e); // 报错
	// console.log(f); // 报错
</script>
相关推荐
Heo4 分钟前
简单聊聊webpack摇树的原理
前端·javascript·面试
San305 分钟前
深入理解 JavaScript 异步编程:从 Ajax 到 Promise
javascript·ajax·promise
少卿9 分钟前
React 日历组件完全指南:从网格生成到农历转换
前端·react.js
程序员鱼皮25 分钟前
Gemini 3.0 发布!
前端·ai编程·gemini
程序员鱼皮27 分钟前
Gemini 3.0 炸裂发布!前端又死了???
前端·ai·程序员·互联网·代码
xiangxiongfly91529 分钟前
CSS svg
前端·css·svg
山依尽39 分钟前
如何将一个 React SPA 项目迁移到 Next.js 服务端渲染
前端·next.js
44 分钟前
使用 svgfmt 优化 SVG 图标
前端·svg·icon
Watermelo61744 分钟前
href 和 src 有什么区别,它们对性能有什么影响?
前端·javascript·vue.js·性能优化·html·html5·用户体验
hqk1 小时前
鸿蒙零基础语法入门:开启你的开发之旅
android·前端·harmonyos