JavaScript 里关于函数变量提升的问题?

作者站长头像
站长
· 阅读数 5

在 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个回答
avatar
test
2024-07-07

声明位置并没有立即调用

试试这样?

(function doSometing(){
otherSometion() 
})()

function otherSometing(){
console.log('11')
}

//doSometion() // '11'
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容