一句話說,js預解析時javscript引擎會把js裏面全部的「變量」和「函數」提高到當前做用域的最前面,即一般所說的「變量提高」和「函數提高」。函數
-------------------------------------------------------------blog
JavaScript引擎運行js文件主要分爲兩步:(1)預解析 (2)代碼執行。ip
預解析時會進行‘變量提高’和‘函數提高’,其中變量提高,就是把全部的變量聲明提高到當前做用域的最前面,但不提高賦值操做。函數提高,就是把全部的函數聲明提高到當前做用域的最前面,但不馬上調用函數。作用域
ps.變量提高示例:變量
ps.函數提高示例,如下代碼中能夠正確調用fn函數並執行!im