JavaScript中如何进行变量提升
发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,JavaScript中如何进行变量提升,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。变量提升就好比JavaScript引擎用一个很小的代
千家信息网最后更新 2024年11月24日JavaScript中如何进行变量提升
JavaScript中如何进行变量提升,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
变量提升就好比JavaScript引擎用一个很小的代码起重机将所有var声明和function函数声明都举起到所属作用域(所谓作用域,指的是可访问变量和函数的区域)的最高处。这句话的意思是:如果在函数体外定义函数或使用var声明变量。则变量和函数的作用域会提升到整个代码的最高处,此时任何地方访问这个变量和调用这个函数都不会报错;而在函数体内定义函数或使用var声明变量,变量和函数的作用域则会提升到整个函数的最高处,此时在函数体内任何地方访问这个变量和调用所定义的函数都不会报错。
示例如下:
console.log("gv1=" + gv); // 在声明前访问变量 show(); var gv = "javascript"; console.log("gv2=" + gv); function(){ console.log("lv1= " + lv); vat lv = "js"; console.log("lv2=" + lv); }
输出结果:
gv1 = undefined; lv1 = undefined; lv2 = js; gv2 = javasript;
在上述代码中,第一行迪马以及show函数中的第一行代码分别是在变量声明前访问了gv和lv变量,第二行代码在函数定义前,调用了show函数。从输出结果来看,上述代码在声明之前访问变量以及在定义前调用函数完全没问题,原因是变量提升。
上述代码在代码运行前,经过预解析处理后的代码逻辑如下:
var gv; // 变量声明提升到当前作用域的最高处 var show = function show (){ var lv; console.log("lv1=" + lv);//lv在声明时没有初始化,所以输出undefined lv= "js"; console.log("lv2=" + lv); // 变量输出赋予的值: js } console.log("gv1=" + gv1); // gv在声明时没有初始化,所以输出undefined gv = "javascript"; console.log("gv2=" + gv);//变量输出所赋予的值:javascript
由上可见,正是因为var支持变量提升,所以可以在声明前使用var声明的变量,而let和const不支持变量提升,所以它们声明的变量必须先声明才可以使用。
一般来说,javascript代码的执行包括两个过程:预解析处理过程和逐行解读过程。在代码逐行解读前,javascript引擎需要进行带的预解析处理。在预解析过程中,当前作用域中var变量声明和函数定义将被提升到作用域的最高处。
看完上述内容,你们掌握JavaScript中如何进行变量提升的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
变量
函数
代码
作用
输出
最高
最高处
过程
问题
处理
一行
内容
原因
地方
引擎
方法
更多
结果
支持
束手无策
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全技术报告心得体会
学生数据库管理系统单机版
配置服务器远程连接映射
稳网百兆服务器
云南公安厅网络安全保卫总队
预防网络安全主题班会主持词
数据库技术三个阶段的特征
石林参考软件开发市场价
建好数据库
学生考勤管理系统数据库实现
网络安全内容合规
bms软件开发要学什么
思科认证有数据库
oracle 克隆数据库
保证网络安全的策略有
完美世界竞技平台连接服务器
linux服务器域名绑定
最新网络安全小品
六盘水服务器显卡多少钱
广东社交软件开发外包
苹果查找未连接服务器
sql数据库显示问号
ncbi官网数据库
华为bmc软件开发部怎么样
提高领导干部网络安全意识
江苏数据库空投箱销售厂家
网络安全挑战战
保定长城软件开发薪资
如何用c 做一个软件开发
如何备份织梦网站数据库