JS定義函數的兩種方式:函數聲明和函數表達式

函數聲明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

相關文章
相關標籤/搜索