//定義函數(shù)的方式有兩種:函數(shù)聲明 和 函數(shù)表達(dá)式
//函數(shù)聲明的方式
function good (arg0,arg1,arg2){
//函數(shù)體
}
// 通過方法名可以獲取到function的名字
console.log(good.name);//good
//函數(shù)聲明方式創(chuàng)建函數(shù)的一個重要特征就是"函數(shù)聲明提升", 意思是執(zhí)行代碼之前會先讀取函數(shù)聲明,意思就是可以吧函數(shù)聲明放在調(diào)用語句后面
fn1();//1
function fn1(){
console.log(1);
}
//函數(shù)表達(dá)式方式 包含幾種方式,下面是最常見的一種
var noName = function(arg0,arg1,arg2){//賦給變量的函數(shù)也叫匿名函數(shù),函數(shù)表達(dá)式不會發(fā)生"函數(shù)聲明提升"
//函數(shù)體
}
// fn2();// fn2 is not a function
var fn2 = function(){
console.log("匿名函數(shù)")
}
//下列這種寫法很危險, 大多數(shù)瀏覽器都會返回第二個聲明. 忽略條件語句, 如果替換成函數(shù)表達(dá)式就不會有問題了
var y = false;
if(y){
function sayHi(){
alert(1)
}
}else{
function sayHi(){
alert(2);
}
}
// sayHi();
//函數(shù)表達(dá)式寫法
var sayHi;
var y = false;
if(y){
sayHi = function(){
alert(1)
}
}else{
sayHi = function(){
alert(2);
}
}
//遞歸
function factorial(num){
if (num <= 1){
return 1;
} else {
return num * factorial(num-1)
}
}
// factorial(10);
var anthorFactorial = factorial;
factorial = null;
alert(anthorFactorial(4));//factorial is not a function 報錯; 因?yàn)檫f歸里寫死了factorial方法, 所以當(dāng)factorial變成null時就會報錯,可以用 arguments.callee來解決
// arguments.callee是指向一個正在執(zhí)行的函數(shù)的指針
function factorial(num){
if(num<=1){
return 1;
}else{
return num* arguments.callee(num -1);
}
}
var anotherFactorial = factorial;
factorial = null;
anotherFactorial(4);//不會報錯
//嚴(yán)苛模式下, 不能通過腳本訪問arguments.callee();訪問這個屬性會導(dǎo)致錯誤;那么可以用命名函數(shù)的方式來解決
function factorial(function f(num){//這種方式在嚴(yán)格模式和非嚴(yán)格模式下都行得通。
if(num<=1){
return 1;
}else{
return num * f(num-1);
}
})
7_1 函數(shù)表達(dá)式 > 遞歸
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門筹我,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人帆离,你說我怎么就攤上這事崎溃。” “怎么了盯质?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長概而。 經(jīng)常有香客問我呼巷,道長,這世上最難降的妖魔是什么赎瑰? 我笑而不...
- 正文 為了忘掉前任王悍,我火速辦了婚禮,結(jié)果婚禮上餐曼,老公的妹妹穿的比我還像新娘压储。我一直安慰自己,他們只是感情好源譬,可當(dāng)我...
- 文/花漫 我一把揭開白布集惋。 她就那樣靜靜地躺著,像睡著了一般踩娘。 火紅的嫁衣襯著肌膚如雪刮刑。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼帆疟,長吁一口氣:“原來是場噩夢啊……” “哼鹉究!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鸯匹,我...
- 序言:老撾萬榮一對情侶失蹤坊饶,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后殴蓬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體匿级,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年染厅,在試婚紗的時候發(fā)現(xiàn)自己被綠了痘绎。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
- 正文 年R本政府宣布,位于F島的核電站魂那,受9級特大地震影響蛾号,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜涯雅,卻給世界環(huán)境...
- 文/蒙蒙 一鲜结、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧活逆,春花似錦精刷、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至锈遥,卻和暖如春误算,著一層夾襖步出監(jiān)牢的瞬間仰美,已是汗流浹背。 一陣腳步聲響...
- 正文 我出身青樓蚊夫,卻偏偏與公主長得像诉字,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子知纷,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 遞歸 遞歸函數(shù)是在一個函數(shù)通過名字調(diào)用自身的情況下構(gòu)成的琅轧。 使用arguments.callee是一個執(zhí)行正在執(zhí)行...
- 個人向,對JS知識進(jìn)行了查漏補(bǔ)缺睹酌,主要來源于《JS高級程序設(shè)計》和網(wǎng)上博客权谁,本文內(nèi)容主要包括以下: 函數(shù)表達(dá)式的特...
- 我的他在運(yùn)行倒班已經(jīng)六個年頭了,頭發(fā)比以前掉的多了壶辜,臉上的痘印也是層出不窮悯舟,整個人時而沒有精神頭,我看著甚是...