最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談JavaScript的函數(shù)及作用域

 更新時間:2016年12月30日 09:12:05   作者:betterwlf  
函數(shù)和作用域是JavaScript的重要組成部分,我們在使用JavaScript編寫程序的過程中經常要用到這兩部分內容,借助此文一起來鞏固下學習的內容吧。

函數(shù)和作用域是JavaScript的重要組成部分,我們在使用JavaScript編寫程序的過程中經常要用到這兩部分內容,作為初學者,我經常有困惑,借助寫此博文來鞏固下之前學習的內容。

(一)JavaScript函數(shù)

JavaScript函數(shù)是指一個特定代碼塊,可能包含多條語句,可以通過名字來供其他語句調用以執(zhí)行函數(shù)包含的代碼語句。

1.JavaScript創(chuàng)建函數(shù)的方法有兩種:

函數(shù)聲明:

function funcDeclaration(){ return 'A is a function'; }

函數(shù)表達式:

var funExpression=function(){ return 'A is a function '; }

上述函數(shù)聲明和函數(shù)表達式的區(qū)別(注明:翻譯自:不同的方式來寫一個函數(shù))在:

JavaScript解析器中存在一種變量聲明被提升(hosting)的機制,也就是說變量(函數(shù))的聲明會被提升到作用域的最前面,即使寫代碼的時候是寫在最后面,也還是會被提升至最前面。

例如以下代碼段:

alert(foo); // function foo() {}
alert(bar); // undefined
function foo() {}
var bar = function bar_fn() {};
alert(foo); // function foo() {}
alert(bar); // function bar_fn() {}

輸出結果分別是function foo() {} 、undefined 、function foo() {} 和function bar_fn() {} 。

可以看到foo 的聲明寫在alert之后,仍然可以被正確調用,因為JavaScript解釋器會將其提升到alert前面,而以函數(shù)表達式創(chuàng)建的函數(shù)bar則不享受此待遇。

所以,JavaScript 引擎執(zhí)行以上代碼的順序可能是這樣的:

  • 創(chuàng)建變量foo和 bar,并將它們都賦值為undefined。
  • 創(chuàng)建函數(shù) foo 的函數(shù)體,并將其賦值給變量foo。
  • 執(zhí)行前面的兩個 alert。
  • 創(chuàng)建函數(shù) bar_fn ,并將其賦值給 bar。
  • 執(zhí)行后面的兩個 alert。

2.函數(shù)的參數(shù)

在調用函數(shù)時,你可以向其傳遞值,這些值被稱為參數(shù)。

function printName(name){
  console.log(name);
}
printName('Byron');
printName('Casper);

其中name是形參,'Byron'和'Casper'是實參。

說到函數(shù)的參數(shù),我們不得不提到arguments。此處涉及的內容有點多,請看客們參考樓主之前轉載的javascript arguments。

3.函數(shù)重載

重載是很多面向對象語言實現(xiàn)多態(tài)性的手段之一,在靜態(tài)語言中確定一個函數(shù)的手段是靠方法簽名--函數(shù)名+參數(shù)列表,也就是說相同名字的函數(shù)參數(shù)個數(shù)不同或者順序不同都被認為是不同的函數(shù),成為函數(shù)重載。

在JavaScript中沒有函數(shù)重載的概念,函數(shù)通過名字確定唯一性,參數(shù)不同也被認為是相同的函數(shù),后面的覆蓋前面的。

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關文章

最新評論

潮安县| 雅安市| 岳阳市| 周宁县| 肃南| 海安县| 宁都县| 洛川县| 莆田市| 凤台县| 上饶市| 临江市| 东明县| 施秉县| 伊宁市| 兴仁县| 拜城县| 湾仔区| 德阳市| 临武县| 开原市| 上蔡县| 八宿县| 新竹县| 新巴尔虎右旗| 桦川县| 安义县| 信丰县| 昭平县| 武城县| 井冈山市| 广饶县| 沅陵县| 德化县| 澄迈县| 镇安县| 阜城县| 嘉鱼县| 双牌县| 岳普湖县| 班玛县|