详解javascript中的变量提升和函数提升
作者:歆冉 时间:2024-06-07 15:53:28
1在js中只有两种作用域
a:全局作用域
b:函数作用域
在ES6之前,js是没有块级作用域。
首先来解释一下什么是没有块级作用域?
所以此时 是可以打印输出变量a的值。
2:什么是变量提升?
在我们的js中,代码的执行时分两步走的,1、解析 2、一步一步执行
那么变量提升就是变量声明会被提升到作用域的最顶上去,也就是该变量不管是在作用域的哪个地方声明的,都会提升到作作用域的最顶上去。
那么上面这种写法其实等价于下面这种写法:
看几个例子:
把上面的例子稍作改动:
结果就会大不一样,
再看一个例子:
3:什么是函数提升?
输出的结果是:
注意:函数声明式,会将函数的声明和定义一起提升到作用域的最顶上去。
如果是这种写法:函数表达式声明的函数
例子:
输出的结果是:
最后的总结:
1:所有的声明都会提升到作用域的最顶上去。
2:同一个变量只会声明一次,其他的会被忽略掉。
3:函数声明的优先级高于变量申明的优先级,并且函数声明和函数定义的部分一起被提升。
来源:http://blog.51cto.com/11871779/2119667
标签:js,变量提升,函数提升
0
投稿
猜你喜欢
Python如何设置指定窗口为前台活动窗口
2022-01-22 02:20:02
如何确定Oracle数据库表重复的记录
2010-07-26 13:23:00
详解Java使用JDBC连接MySQL数据库
2024-01-24 18:21:06
python中numpy的矩阵、多维数组的用法
2021-01-26 04:25:43
Python基于pyCUDA实现GPU加速并行计算功能入门教程
2021-11-01 08:24:58
MySQL编码不一致可能引起的一些问题
2024-01-21 17:26:15
python自动化测试selenium定位frame及iframe示例
2023-01-08 16:25:28
Python序列对象与String类型内置方法详解
2023-09-22 13:25:18
关于Python与Golang语言的对比分析
2023-03-10 18:54:06
某一公司的ASP面试题
2011-09-15 20:50:20
python3.6的venv模块使用详解
2023-05-11 12:13:41
Sql存储过程游标循环的用法及sql如何使用cursor写一个简单的循环
2024-01-26 18:49:00
Python常见字典内建函数用法示例
2022-08-07 08:59:23
python轮询机制控制led实例
2023-12-12 01:39:00
YOLOv5车牌识别实战教程(八)Web应用与API开发
2022-12-29 23:44:22
实现像php一样方便的go ORM数据库操作示例详解
2024-05-05 09:27:25
详解Python自动化中这八大元素定位
2023-06-04 18:25:34
mac系统安装Python3初体验
2023-11-27 07:33:16
layDate插件设置开始和结束时间
2024-05-03 15:05:03
python使用matplotlib绘制图片时x轴的刻度处理
2022-05-05 01:38:56