JavaScript語句和聲明之function

函數(shù)定義的方式有三種:

  • 構(gòu)造函數(shù)的形式

可以將要封裝的代碼以字符串的形式傳遞給Function構(gòu)造函數(shù)郎汪。

var 函數(shù)名 = new Function("代碼語句...");

不過饵婆,在實際開發(fā)中伍宦,很少使用構(gòu)造函數(shù)的形式來創(chuàng)建一個函數(shù)對象给猾。

  • 函數(shù)聲明的形式
function 函數(shù)名([形參1,形參2...形參N]){
    語句...
}

函數(shù)聲明定義一個具有指定參數(shù)的函數(shù)丙号。此篇主要講函數(shù)聲明形式創(chuàng)建函數(shù)有關(guān)內(nèi)容先朦。

  • 函數(shù)表達式的形式
var 函數(shù)名 = function ([形參1,形參2...形參N]){
    語句...
}缰冤;

下面就講講函數(shù)聲明形式定義一個函數(shù)相關(guān)內(nèi)容。

1.描述

函數(shù)聲明創(chuàng)建的函數(shù)是一個 Function 對象喳魏,具有 Function 對象的所有屬性棉浸、方法和行為。

函數(shù)可以被有條件來聲明截酷,也就是說函數(shù)聲明可能出現(xiàn)在一個 if 語句里涮拗。有的瀏覽器會將這種有條件的聲明看成是無條件的聲明,即是無論條件是true還是false迂苛,瀏覽器都會創(chuàng)建函數(shù)三热。因此,它們不應(yīng)該被使用三幻。

默認情況下就漾,函數(shù)的返回值是 undefined。如果想返回一個其他值念搬,函數(shù)必須通過一個return 語句指定返回值抑堡。

2.有條件的創(chuàng)建函數(shù)

根據(jù)上述描述部分內(nèi)容我們知道函數(shù)聲明可能在if語句里,但朗徊,這種
聲明方式在不同的瀏覽器里可能有不同的效果首妖。因此,不應(yīng)該在生成環(huán)境代碼中使用這種聲明方式爷恳,應(yīng)該使用函數(shù)表達式來代替有缆。

var hoisted = "fun" in this;
console.log(`"fun" name ${hoisted ? "is" : "is not"} hoisted. typeof fun is ${typeof fun}`);
if (false) {
  function fun(){
     return 1; 
  }
}

輸出結(jié)果如下:

  • 在Chrome瀏覽器中:
"fun" name is hoisted. typeof fun is undefined

fun 變量名被提升,但是 typeof funundefined.

  • 在Firefox瀏覽器中:
"fun" name is hoisted. typeof fun is undefined

fun 變量名被提升温亲,但是 typeof funundefined.

  • 在Edge瀏覽器中:
"fun" name is not hoisted. typeof fun is undefined

fun 變量名未被提升棚壁,且 typeof funundefined.

  • 在Safari瀏覽器中:
"fun" name is hoisted . typeof fun is function

fun 變量名被提升,且 typeof funfunction.

注意:即便上述代碼中if(false)改為if(true)栈虚,結(jié)果都是一樣的袖外。代碼如下:

var hoisted = "fun" in this;
console.log(`'fun' name ${hoisted ? "is" : "is not"} hoisted. typeof fun is ${typeof fun}`);
if (true) {
  function fun(){
     return 1; 
  }
}

輸出結(jié)果如下:

  • 在Chrome瀏覽器中:
"fun" name is hoisted. typeof fun is undefined

fun 變量名被提升,但是 typeof funundefined.

  • 在Firefox瀏覽器中:
"fun" name is hoisted. typeof fun is undefined

fun 變量名被提升魂务,但是 typeof funundefined.

  • 在Edge瀏覽器中:
"fun" name is not hoisted. typeof fun is undefined

fun 變量名未被提升曼验,且 typeof funundefined.

  • 在Safari瀏覽器中:
"fun" name is hoisted . typeof fun is function

fun 變量名被提升,且 typeof funfunction.

3.栗子

  • 聲明函數(shù)
    下面代碼聲明了一個函數(shù)粘姜,該函數(shù)返回了兩個數(shù)值的和鬓照,參數(shù)是加數(shù)a和加數(shù)b.
function add(a,b){
  return a + b ;
}
  • 調(diào)用函數(shù)
    封裝到函數(shù)中的代碼不會立即執(zhí)行,函數(shù)中的代碼會在函數(shù)調(diào)用的時候執(zhí)行

語法: 函數(shù)對象();

當調(diào)用函數(shù)時相艇,函數(shù)中封裝的代碼才會被執(zhí)行。

function add(a,b){
  return a + b ;
}
add(1,3);  //返回值為4

如果你覺得這篇文章對你有幫助纯陨,請轉(zhuǎn)發(fā)點贊支持一下哦坛芽!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載留储,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。
  • 序言:七十年代末咙轩,一起剝皮案震驚了整個濱河市获讳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌活喊,老刑警劉巖丐膝,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異钾菊,居然都是意外死亡帅矗,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門煞烫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來浑此,“玉大人,你說我怎么就攤上這事滞详×菥悖” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵料饥,是天一觀的道長蒲犬。 經(jīng)常有香客問我,道長岸啡,這世上最難降的妖魔是什么原叮? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮凰狞,結(jié)果婚禮上篇裁,老公的妹妹穿的比我還像新娘。我一直安慰自己赡若,他們只是感情好达布,可當我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著逾冬,像睡著了一般黍聂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上身腻,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天产还,我揣著相機與錄音,去河邊找鬼嘀趟。 笑死脐区,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的她按。 我是一名探鬼主播牛隅,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼炕柔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了媒佣?” 一聲冷哼從身側(cè)響起匕累,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎默伍,沒想到半個月后欢嘿,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡也糊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年炼蹦,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片显设。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡框弛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出捕捂,到底是詐尸還是另有隱情瑟枫,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布指攒,位于F島的核電站慷妙,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏允悦。R本人自食惡果不足惜膝擂,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望隙弛。 院中可真熱鬧架馋,春花似錦、人聲如沸全闷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽总珠。三九已至屏鳍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間局服,已是汗流浹背钓瞭。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留淫奔,地道東北人山涡。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親鸭丛。 傳聞我的和親對象是個殘疾皇子霍殴,可洞房花燭夜當晚...
    茶點故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內(nèi)容