大连码上未来IT培训

JS全局变量和局部变量的区别

作者:码上未来CodingFuture 来源:码上未来CodingFuture
发布日期:2024年06月17日

通过前面的学习,我们知道变量需要先声明后使用,但这并不意味着...

通过前面的学习,我们知道变量需要先声明后使用,但这并不意味着声明变量后就可以在任意位置使用该变量。例如,在函数中声明一个age变量,在函数外进行访问,就会出现age变量未定义的错误,示例代码如下。functioninfo(){var age = 18;}info();console.log (age);//报错,提示 age is not defined( age未定义)从上述代码可以看出,变量需要在它的作用范围内才可以被使用,这个作用范围称为变量的作用域。JavaScript根据作用域使用范围的不同,将其划分为全局作用域、函数作用域和块级作用域(ES6提供的)。上述示例声明的age变量只能在info()函数体内才可以使用。接下来我们针对JavaScript中不同作用域内声明的变量进行介绍。1.全局变量:不在任何函数内声明的变量(显式定义)或在函数内省略var声明的变量(隐式定义)都称为全局变量,在任何地方都可以访问到的变量就是全局变量,全局变量所在的区域就是全局作用域。2.局部变量:只在固定的代码片段内可访问到的变量,*常见的例如函数内部的变量,就是局部变量。局部变量所在的区域就是局部作用域(函数作用域)。3.块级变量:ES6提供的let关键字声明的变量称为块级变量,仅在“{}”中间有效,如if、for或while语句等。对于初学者来说,重点是理解全局变量和局部变量的区别,而块级变量和let关键字属于ES6的新增内容。全局变量和局部变量下面我们通过代码演示全局变量和局部变量的区别,具体代码如下。//全局作用域var num = 10;//全局变量functionfn(){//局部作用域var num = 20;//局部变量console.log(num);//输出局部变量num的值,输出结果:20}fn();console.log(num);//输出全局变量10的值,输出结果:10在上述代码中,全局变量num和局部变量num虽然名称相同但具它们百不影响,在fn()函数外获取的num的值为10,在fn()函数内获取到的num的值为20。需要注意的是,函数中的变量如果省略var关键字,它会白动向上级作田城杏找变量,一直找到全局作用域为止。示例代码如下。functionfn(){num2=20;}fn();console.log(num2);//输出结果:20在上述代码中,fn()函数中的“num2 = 20:”使得程序首先会在fn()函数的局部作用域中查找是否存在num2变量,如果不存在,则到上级作用域,也就是全局作用域中查找。由于在全局作用域中也没有num2变量,此时就会在全局作用域下创建一个全局变量num2。通过以上对比可以看出,在全局作用域下,添加或省略var关键字都可以声明全局变量;而在函数中,添加var关键字声明的变量是局部变量,省略var关键字时,如果变量在当前作用域下不存在,会自动向上级作用域查找变量。局部变量只能在函数内部使用,函数的形参也属于局部变量。从执行效率来说,全局变量在浏览器关闭页面的时候才会销毁,比较占用内存资源;而局部变量在函数执行完成后就会销毁,比较节约内存资源。码上未来IT实训课程优势01课程内容牛  ●Java、Web、Python、互联网全栈开发、AIGC视觉设计&全媒体运营、短视频运     营、视频剪辑、平面设计、电商设计及运营等开发课程,每年迭代课程内容●真实企业资源,学习更深入02专家技术牛  ●技术大咖根据课程体系分重点、分阶段授课●5年以上企业一线开发经验项目经理、技术大牛实战授课03实训案例牛 ●真实的企业一线产品需求案例●全部来自一线的项目经理, 带来真实需求一线项目04学习模式牛 ●6个月全日制实训学习,真实的项目经验●讲练结合,掌握更熟练,全程技术老师跟踪辅导05就业服务牛 ●毕业即就业,学员就业●保薪资就业协议 入学即签订●4-5轮模拟面试+职业素养课程,全程跟踪,为就业保驾护航●毕业学生享受技术大咖终身支持指导课程适用人群●大学应往届生学习进修、在职提升、转行充电人群;●会基本的电脑操作,打字、有无编程基础均可;●对互联网编程感兴趣,想往网站开发、软件工程、大数据方向发展的人群;●低学历人群经过入学测试后方可选修。更多精彩推荐◡̈ 打破时间束缚,掌握一技之长才是硬道理◡̈  提升学历,为职业成功铺路◡̈   提高你的职场竞争力:IT培训是关键!◡̈ 你有面试困难症?手把手教你解决
加微信咨询
夏老师 @码上未来IT培训
微信号:155******12

资深职业咨询规划师

微信咨询
相关资讯
jquery事件绑定方法有哪些? 关于Web的相关的面试题(四十) 收获的季节,IT技能提升的良机! 关于Web的相关的面试题(三十九) jquery基本选择和层次选择器详细介绍
相关课程