js中函式宣告提前

2021-09-01 08:48:15 字數 467 閱讀 2919

js中普通的變數會宣告提前外,函式也會宣告提前,不同的是由於函式的宣告有兩種方法,宣告提前的方式也就有兩種方式;

1、通過 var fn=function(){}定義函式,只是將函式名提前了,函式體沒有提前,如果在函式體前使用fn()呼叫函式就會報錯

fn()

;varfn=

function()

//結果:報錯!uncaught typeerror: fn is not a function

2、通過function fn(){}定義函式,是將整個函式體提前了,此時使用fn()呼叫函式就會正常

fn()

;functionfn(

)//結果:函式體提前

總結:通過var宣告的變數都是將變數名提到當前script塊的頭部,賦值留在原位置,如果在賦值之前訪問變數或函式,返回結果分別是undefined和報錯;

JS函式宣告提前 1

var a 10 function pay pay 7 console.log a 7 函式宣告提前 執行js 前,解析器將當前作用域內宣告的所有變數和函 數都會放到作用域的開始處 1 function pay 會提前宣告 2 var a 10 3 pay 執行函式 4 a 3 a首先會在自己的函式...

JS宣告提前

js中的宣告提前,變數宣告提前,函式宣告提前,以及宣告提前的順序 console.log a a var a functiona console.log a a 6 a 四個輸出分別是什麼呢?我們來除錯一下,執行到 a 6時輸出如下 最後乙個a 報錯。接下來我們來分析一下原因 一 什麼是變數宣告提前...

js 變數 函式宣告提前問題

1 變數宣告提前 看 function 以上 報錯 referenceerror a is not defined,這很好理解 根本就沒宣告當然報錯啦,往下看 function 以上 對於直譯器來說是下面這樣的,所以沒有報錯,且輸出了undefined function 再來看一中情況 functi...