区别JavaScript函数声明与变量声明
作者:laozhang 时间:2024-04-18 09:34:42
今天,又由一到题目引发了一场我跟JS基础的较量:首先是
var getName = function(){alert(1)};
function getName(){alert(2)};
getName();// 1
or
function getName(){alert(2)};
var getName = function(){alert(1)};
getName();// 1
为什么我调换声明顺序,结果还是输出以 var 形式声明的函数的值?
有人回答我说 "啊,变量提升呀...",我最开始的理解,就算变量提升,第一种情况提升之后,应该是这样啊:
var getName;
getName = function(){alert(1)};
function getName(){alert(2)};
最后应该输出 2 才对啊(很理直气壮)。
殊不知不只有var声明才会提前,以function fn(){}这种形式声明的函数,会被提升到作用域的最最顶部,然后再是变量的提升。
具体请看下面例子:
fn();//Uncaught TypeError: fn is not a function
var fn = function(){console.log(1)};
but
fn();//2
var fn = function(){console.log(1)};
function fn(){console.log(2)}
足以说明函数提升的更凶一些。
标签:JavaScript,函数声明,变量声明
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python将图片转换为字符画的方法
2022-06-15 07:52:27
![](https://img.aspxhome.com/file/2023/4/118804_0s.png)
奇淫技巧和西天取经
2009-08-24 12:34:00
js 原生判断内容区域是否滚动到底部的实例代码
2024-04-22 22:41:45
Oracle性能究极优化 上第1/2页
2010-07-30 13:26:00
javascript获取select的当前值示例代码(兼容IE/Firefox/Opera/Chrome)
2024-04-22 12:49:59
一篇文章教你掌握python数据类型的底层实现
2023-06-01 03:41:14
![](https://img.aspxhome.com/file/2023/7/90677_0s.png)
解决python-redis-lock分布式锁的问题
2023-05-23 18:57:49
![](https://img.aspxhome.com/file/2023/3/98783_0s.png)
python类共享变量操作
2021-10-21 02:16:32
![](https://img.aspxhome.com/file/2023/6/112426_0s.jpg)
Python正则表达式教程之三:贪婪/非贪婪特性
2023-08-14 20:20:12
Pandas高级教程之Pandas中的GroupBy操作
2022-04-14 19:22:25
jupyter notebook tensorflow打印device信息实例
2021-02-06 09:34:40
python return逻辑判断表达式实现解析
2023-04-05 08:03:10
python实现按键精灵找色点击功能教程,使用pywin32和Pillow库
2023-11-08 18:30:34
![](https://img.aspxhome.com/file/2023/5/63915_0s.jpg)
MySql索引原理与操作
2024-01-28 22:27:31
![](https://img.aspxhome.com/file/2023/6/126246_0s.png)
深入理解Vue的数据响应式
2024-05-09 09:39:15
python机器学习实战之K均值聚类
2022-12-22 21:50:31
python使用mysql的两种使用方式
2024-01-23 10:39:36
![](https://img.aspxhome.com/file/2023/9/82739_0s.png)
数字人组件反写[asp组件开发实例5]
2009-06-09 13:23:00
![](https://img.aspxhome.com/file/UploadPic/20093/9/20093918286639s.gif)
MySQL数据表分区策略及优缺点分析
2024-01-22 05:37:19
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
2021-03-29 07:00:56