亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

javascript函數(shù)到底是什么

時(shí)間:2020-11-18 11:26:09 JavaScript 我要投稿

javascript函數(shù)到底是什么

  javascript函數(shù)是一個(gè)比較奇怪的東西,接觸一段時(shí)間你就會(huì)犯迷糊,弄不明白它到底是什么了。你是否會(huì)因?yàn)橛械膉avascript函數(shù)沒(méi)有名字而莫名其妙,是否會(huì)因?yàn)閖avascript函數(shù)的參數(shù)沒(méi)有類型而抓狂,是否為javascript函數(shù)以表達(dá)式的形態(tài)存在而徹底崩潰。正是因?yàn)橛辛诉@些煩惱才讓javascript函數(shù)值得我們尋味,我想從函數(shù)的構(gòu)成來(lái)細(xì)說(shuō)函數(shù),這聽(tīng)起來(lái)像是一句廢話,講任何東西當(dāng)然是從構(gòu)成去談,但是由于javascript函數(shù)你確實(shí)捉摸不了它的形態(tài),因此這里我是從一個(gè)標(biāo)準(zhǔn)函數(shù)的構(gòu)成來(lái)細(xì)說(shuō)。

  1.函數(shù)名

  在面向?qū)ο笳Z(yǔ)言中,函數(shù)一般都有名稱,但javascript函數(shù)不一定,這類函數(shù)稱為匿名函數(shù)或者函數(shù)直接量。它就像是一個(gè)表達(dá)式,然后這個(gè)表達(dá)式的左值即可以用來(lái)調(diào)用函數(shù),也可以存儲(chǔ)在變量中傳遞給其它的函數(shù)。它的好處就是不用每次調(diào)用的時(shí)候創(chuàng)建新的對(duì)象。

  復(fù)制代碼 代碼如下:

  var f= function (x) {return x*x;};

  alert( f(6) );

  以上例子就會(huì)在頁(yè)面上彈出窗口顯示36

  2.參數(shù)

  javascript函數(shù)的'參數(shù)也比較神奇,調(diào)用javascript函數(shù)時(shí)如果填寫(xiě)的參數(shù)和函數(shù)定義的參數(shù)不一致(例如個(gè)數(shù)不一致),程序不會(huì)出錯(cuò),有時(shí)甚至能調(diào)用成功,這對(duì)于java語(yǔ)言是無(wú)法想象的,但javascript函數(shù)可以做到。例如上面的例子,我們這樣調(diào)用:

  復(fù)制代碼 代碼如下:

  alert(f(6,7))

  結(jié)果仍然是36。雖然這樣不會(huì)出錯(cuò),但是我們?nèi)匀幌牒瘮?shù)被正確的調(diào)用,保證調(diào)用時(shí)和函數(shù)定義的參數(shù)數(shù)目一致。通過(guò)Arguments對(duì)象可以獲取函數(shù)調(diào)用者的參數(shù)數(shù)目。修改上述代碼。

  復(fù)制代碼 代碼如下:

  var f= function (x) {

  if(arguments.length>1) {

  return "out of range";

  } else {

  return x*x;

  }

  };

  alert( f(6,7) );

  處理獲取函數(shù)調(diào)用者的參數(shù)數(shù)目,還可以獲取到這些參數(shù)的值,將上述代碼再進(jìn)行一番修改:

  復(fù)制代碼 代碼如下:

  var f= function (x) {

  if(arguments.length>1) {

  return arguments[0]*arguments[1];

  復(fù)制代碼 代碼如下:

  } else {

  return x*x;

  }

  };

  alert( f(6,7) );

  你能猜出結(jié)果是多少嗎?對(duì),是42。