今天看到個題目,很疑惑,一直沒想到答案,題目是這樣的:<script>
function g() {
console.log(123)
return true
}
;(function(){
console.log(g) //undefined
console.log(g()) //g is not function
if(g) {
function g() {
console.log(456)
return false
}
}
})()
console.log(g())
</script>在自執行函數中,使用函數聲明定義function也還是會變量提升的,既然提升了為什么還是undefind或者說為什么是g is not function?請大神們告知一二,謝謝
關于自執行函數定義函數聲明結果輸出為undefined的問題
MM們
2018-06-25 13:18:51