JS函數(shù)定義方式的區(qū)別介紹
關(guān)于JS的函數(shù)定義方式有以下兩種:
(1)典型的函數(shù)聲明
function slide(arguments){
//...code
}
(2)以函數(shù)表達(dá)式的形式定義函數(shù)
var slide = function(arguments){
//...code
}
雖然上面兩種方式邏輯上是等價(jià)的,但是還是有點(diǎn)小區(qū)別:
區(qū)別一:例一中的函數(shù)會(huì)在代碼執(zhí)行以前被加載到作用域中,而例二則是在代碼執(zhí)行到那一行的時(shí)候才會(huì)有定 義;
區(qū)別二:函數(shù)聲明會(huì)給函數(shù)指定一個(gè)名字,而函數(shù)表達(dá)式則是創(chuàng)建一個(gè)匿名函數(shù),然后將這個(gè)匿名函數(shù)賦給一個(gè)變量;
看下面例子:
function factorial(num){
if(num<=1){
return 1;
}
else {
return num*arguments.callee(num-1);
}
}
var anotherFactorial = factorial;
factorial = null;
console.log(anotherFactorial);//輸出factorial(){},有函數(shù)名
若是以函數(shù)表達(dá)式定義
var factorial = function(num){
//...code
}
//...code
console.log(anotherFactorial);//輸出function(){},匿名函數(shù)
以上這篇JS函數(shù)定義方式的區(qū)別介紹就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
javascript學(xué)習(xí)筆記(十) js對(duì)象 繼承
javascript學(xué)習(xí)筆記之js對(duì)象 繼承介紹,需要的朋友可以參考下2012-06-06
深入解讀JavaScript中的Iterator和for-of循環(huán)
這篇文章主要介紹了JavaScript中的Iterator和for-of循環(huán),是JS入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-07-07
window.location.href的用法(動(dòng)態(tài)輸出跳轉(zhuǎn))
無(wú)論在靜態(tài)頁(yè)面還是動(dòng)態(tài)輸出頁(yè)面中window.location.href都是不錯(cuò)的用了跳轉(zhuǎn)的實(shí)現(xiàn)方案2014-08-08
JavaScript中的分號(hào)插入機(jī)制詳細(xì)介紹
這篇文章主要介紹了JavaScript中的分號(hào)插入機(jī)制詳細(xì)介紹,本文講解JavaScript中各種情況下的分號(hào)插入機(jī)制,需要的朋友可以參考下2015-02-02
javascript定義變量時(shí)加var與不加var的區(qū)別
這篇文章主要介紹了javascript 變量中 var 與不加var的區(qū)別,需要的朋友可以參考下2014-12-12
javascript操作html控件實(shí)例(javascript添加html)
幾乎HTML所有標(biāo)記都可以說(shuō)是HTML的控件,如select, input, div, table等。html標(biāo)簽便捷的操作,深受大家的喜歡。如何使用javascript來(lái)操作HTML控件,下面我介紹下比較麻煩的幾個(gè)控件2013-12-12
JavaScript中使用Math.floor()方法對(duì)數(shù)字取整
這篇文章主要介紹了JavaScript中使用Math.floor()方法對(duì)數(shù)字取整,是JS入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06
JavaScript mapreduce工作原理簡(jiǎn)析
MapReduce是一個(gè)編程模型,用于作業(yè)調(diào)度,也是一個(gè)處理和生成超大數(shù)據(jù)集的算法模型的相關(guān)實(shí)現(xiàn),本文將詳細(xì)介紹JavaScript mapreduce工作原理,需要的朋友可以參考下2012-11-11

