当前位置:网站首页>js中的变量提升和函数提升
js中的变量提升和函数提升
2022-07-04 12:47:00 【51CTO】
js中的变量提升和函数提升
打印的值第一个为undefined,而第二个打印的值为yyyyy.
实际的方法内部代码执行顺序应该是这样的:
看到拆分后的代码执行顺序对结果也就不迷茫了。
为什么有变量提升
那么为什么会出现变量提升这个现象呢?
其实js和其他语言一样,都要经历编译和执行阶段。而js在编译阶段的时候,会搜集所有的变量声明并且提前声明变量,而其他的语句都不会改变他们的顺序,因此,在编译阶段的时候,第一步就已经执行了,而第二步则是在执行阶段执行到该语句的时候才执行。
总结
1.js会将变量的声明提升到js顶部执行,因此对于这种语句:var a = 2;其实上js会将其分为var a;和a = 2;两部分,并且将var a这一步提升到顶部执行。
2.变量提升的本质其实是由于js引擎在编译的时候,就将所有的变量声明了,因此在执行的时候,所有的变量都已经完成声明。
3.当有多个同名变量声明的时候,函数声明会覆盖其他的声明。如果有多个函数声明,则是由最后的一个函数声明覆盖之前所有的声明。
边栏推荐
- #yyds干货盘点# 解决名企真题:连续最大和
- Besides, rsync+inotify realizes real-time backup of data
- 洞见科技解决方案总监薛婧:联邦学习助力数据要素安全流通
- Agile development / agile testing experience
- ASP.NET Core入门一
- Node の MongoDB 安装
- CVPR 2022 | transfusion: Lidar camera fusion for 3D target detection with transformer
- "Pre training weekly" issue 52: shielding visual pre training and goal-oriented dialogue
- Xue Jing, director of insight technology solutions: Federal learning helps secure the flow of data elements
- Haproxy high availability solution
猜你喜欢
爬虫练习题(一)
洞见科技解决方案总监薛婧:联邦学习助力数据要素安全流通
2022kdd pre lecture | 11 first-class scholars take you to unlock excellent papers in advance
一个数据人对领域模型理解与深入
数据库公共字段自动填充
The only core indicator of high-quality software architecture
eclipse链接数据库中测试SQL语句删除出现SQL语句语法错误
CA: efficient coordinate attention mechanism for mobile terminals | CVPR 2021
DGraph: 大规模动态图数据集
室外LED屏幕防水吗?
随机推荐
ASP.NET Core入门一
Using scrcpy projection
Node mongodb installation
分布式BASE理论
Annual comprehensive analysis of China's mobile reading market in 2022
C#/VB. Net to add text / image watermarks to PDF documents
JVM系列——栈与堆、方法区day1-2
CANN算子:利用迭代器高效实现Tensor数据切割分块处理
Apache server access log access Log settings
室外LED屏幕防水吗?
eclipse链接数据库中测试SQL语句删除出现SQL语句语法错误
After the game starts, you will be prompted to install HMS core. Click Cancel, and you will not be prompted to install HMS core again (initialization failure returns 907135003)
基于STM32+华为云IOT设计的酒驾监控系统
诸神黄昏时代的对比学习
上汽大通MAXUS正式发布全新品牌“MIFA”,旗舰产品MIFA 9正式亮相!
After the game starts, you will be prompted to install HMS core. Click Cancel, and you will not be prompted to install HMS core again (initialization failure returns 907135003)
Read the BGP agreement in 6 minutes.
求解:在oracle中如何用一条语句用delete删除两个表中jack的信息
Meituan Ali's Application Practice on multimodal recall
源码编译安装MySQL