我的编程空间,编程开发者的网络收藏夹
学习永远不晚

在JavaScript中var的缺点有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

在JavaScript中var的缺点有哪些

这篇文章主要介绍在JavaScript中var的缺点有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

JavaScript中var存在的缺陷:1、var定义的变量没有块作用域;2、var定义的全局变量会自动添加全局window对象的属性;3、var定义的变量会提前装载。

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

使用var定义变量可能存在如下问题:

  • var定义的变量没有块作用域。

  • var定义的全局变量会自动添加全局window对象的属性。

  • var定义的变量会提前装载。

那么如何弥补var的缺陷?可以使用let关键字,let关键字的出现正好解决了上述问题

1.let定义的变量有块作用域:

我们先来看代码:

<script type="text/javascript">
	for(let i = 0;i < 10; i++){
		console.log(i);
	}
	console.log("循环体之外:" + i);//报错:letScope.html:5 Uncaught ReferenceError: i is not defined
</script>

运行结果:
在JavaScript中var的缺点有哪些
上面的程序在for循环中使用了let来定义循环计数器,这样该循环计数器i将只在for循环中有效,因此程序在循环体之外访问i变量就会报错。如果用var来定义i变量,则会将作用域扩散到循环体外。

2.let定义的全局变量不会自动添加到window对象的属性:

我们再看一个示例:

<script type="text/javascript">
	let name = '巴啦啦';
		console.log(name); //输出巴啦啦
		console.log(window.name); //window.name不存在
</script>

运行结果:

在JavaScript中var的缺点有哪些
上面代码使用let定义一个全局变量name,但与使用var定义全局变量不同的是,使用let定义的全局变量不会变成window对象的属性,所以运行上面程序访问window.name时,看不到任何输出。

3.let定义的变量不会提前装载:

看如下示例:

<script type="text/javascript">
	var name = '巴啦啦';
	function func(){
		console.log(name);
		let name = 'fkit';
		console.log(name);
	}
	func();
</script>

运行结果:

在JavaScript中var的缺点有哪些

使用let定义的变量要等到程序流执行到定义变量的代码行时才会转载。

上面程序先定义了一个全局变量name,接下来程序再func()函数中使用let定义了同名的name变量,此时局部变量name会覆盖全局的name变量。但由于使用let定义的变量不会提前装载,因此func()函数在使用let定义局部变量name之前访问name变量会导致错误-----如果将func()函数中定义name变量的关键字改为var,则会有不同的效果。

修改后运行结果如下:

在JavaScript中var的缺点有哪些

以上是“在JavaScript中var的缺点有哪些”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

在JavaScript中var的缺点有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

javascript array数组有哪些优缺点

JavaScript中的数组(Array)具有以下优点和缺点:优点:1. 灵活性:JavaScript数组可以包含不同类型的数据(字符串、数字、对象等),并且可以动态地增加或删除元素。2. 高效的索引和搜索:通过索引访问数组元素非常快速,因
2023-10-11

Python的缺点有哪些

这篇文章主要讲解了“Python的缺点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python的缺点有哪些”吧!Python 是20世纪90年代发布的一种通用编程语言。虽然 Pyth
2023-06-16

win11的缺点有哪些

Win11的缺点包括以下几点:1. 硬件要求高:Win11对硬件的要求相对较高,需要64位处理器、4GB的内存和64GB的存储空间,还需要支持DirectX 12和UEFI固件接口。这意味着一些老旧的设备可能无法升级到Win11,需要用户购
2023-08-31

在Android开发中使用 AsyncTask的缺点有哪些

今天就跟大家聊聊有关在Android开发中使用 AsyncTask的缺点有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在Android开发中,AsyncTask可以使得用户避免
2023-05-31

c++中的terminatethread有哪些优缺点

在C++中,TerminateThread是一个用于强制终止线程的函数。它有以下一些优点和缺点:优点:快速终止线程:TerminateThread可以立即终止线程的执行,而不需要等待线程执行完毕或等待线程结束的信号。这对于某些紧急情况下需
c++中的terminatethread有哪些优缺点
2024-02-29

angularjs的优缺点有哪些

这篇文章主要介绍angularjs的优缺点有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!谈到流行的开源web app框架,那一定少不了angularjs,angularjs能够解决阻碍单页应用程序开发的各种挑战
2023-06-14

MemSQL的优缺点有哪些

MemSQL是一种内存数据库管理系统,它具有以下优点和缺点:优点:高性能:MemSQL是基于内存的数据库,能够提供快速的数据读写操作。它支持并行处理和分布式架构,能够处理大规模数据集和高并发请求。实时分析:MemSQL支持实时数据分析和
2023-10-24

编程热搜

目录