JavaScript 里关于函数变量提升的问题?
在 js 里函数声明由于提升的原因,可以提前调用
test()// 我可以提前调用
function test(){
console.log('1')
}
故而引发了下面的思考
function doSometing(){
otherSometing() // 这里为什么可以被正确调用?
}
function otherSometing(){
console.log('11')
}
doSometing() // '11'
当我声明两个函数的时候,函数声明提升肯定也有一个先后顺序吧?我目前认为 otherSometing 肯定无法被声明到 doSometing 之前的。
问题:为什么上述代码 doSometiong 可以正确被调用不报错呢?
---3.15/ 20:41
sorry ,由于我的过度思考,提出了一个有问题的问题...抱歉
回复
1个回答
test
2024-07-07
声明位置并没有立即调用
试试这样?
(function doSometing(){
otherSometion()
})()
function otherSometing(){
console.log('11')
}
//doSometion() // '11'
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容