函數聲明javascript
關於函數聲明的方式,它的一個重要的特性就是函數聲明提高(function declaration hoisting),意思是在執行代碼以前會先讀取函數聲明。這就意味着能夠把函數聲明放在調用它的語句後面,以下所示:java
1 sayHi(); //在調用語句的後面聲明函數(function declaration hoisting) 2 function sayHi () { 3 console.log("Hello World"); 4 }
函數表達式函數
有多種表達方式,下面是最多見的一種:spa
var s = function (agr1, arg2) { console.log(arg1 + ' ' + arg2); }
按照書中所說,函數聲明語句,聲明函數實際是聲明瞭一個變量f,而後將一個聲明的函數對象賦值給變量f,變量的聲明有提至全部代碼頂部的特色,故函數聲明語句聲明的函數能夠在聲明以前調用。code
至於爲何一樣是將一個函數賦值給一個變量,函數表達式卻不能提到前面呢?咱們來分析下:對象
var s = function(arg1, arg2) {};
能夠拆分爲:blog
var s; s = function (arg1, arg2) {}
其中 var s
被提早聲明瞭,但 s = xxxx
是要在運行到這裏的時候才進行。ip