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

JavaScript函數(shù)的定義和基本使用方法

 更新時(shí)間:2022年06月26日 16:28:33   作者:starry陸離  
函數(shù)就是一種封裝,由事件驅(qū)動(dòng)的或者當(dāng)它被調(diào)用時(shí)執(zhí)行的可重復(fù)使用的代碼塊,下面這篇文章主要給大家介紹了關(guān)于JavaScript函數(shù)的定義和基本使用方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下

1.用函數(shù)語(yǔ)句定義

先給一個(gè)例子,該函數(shù)的功能是返回?cái)?shù)組元素的和;

function sumArray(arr) {  
    var sum = 0;  
    for(var i = 0,aLength = arr.length;i < aLength;i++) {  
        sum += arr[i];  
    }  
    return sum;  
}  

關(guān)鍵字function后面空一格,sumArray是函數(shù)的名字,其命名規(guī)范與變量名的命名規(guī)范相同:只能有字母、數(shù)字、下劃線和美元符號(hào),不能以數(shù)字開頭,不能是關(guān)鍵字。

括號(hào)中是參數(shù),又叫形式參數(shù),只需要參數(shù)名就可以。參數(shù)可以是0個(gè)、1個(gè)或者多個(gè),相互之間用,隔開,{}中間包含的是函數(shù)體。含有一條或者多條語(yǔ)句。函數(shù)體用來實(shí)現(xiàn)函數(shù)的功能。

關(guān)鍵字return后面是函數(shù)的返回值,函數(shù)也可以沒有返回值。函數(shù)運(yùn)行完return這句話這里就會(huì)退出運(yùn)行,return下面的語(yǔ)句不再運(yùn)行。返回值即函數(shù)的輸出。

用這種方式定義的函數(shù),在函數(shù)定義的前面和后面都可以調(diào)用該函數(shù),只要函數(shù)和調(diào)用函數(shù)的語(yǔ)句在一個(gè)源文件里面就可以了。

2.用表達(dá)式定義

用表達(dá)式的方式定義函數(shù),就是用賦值表達(dá)式把函數(shù)賦值給一個(gè)變量,這其實(shí)就是把函數(shù)看成一個(gè)變量。這個(gè)時(shí)候函數(shù)可以有名字,也可以沒有名字,沒有名字的函數(shù)叫做匿名函數(shù)。

帶名字的;

var funct = function getMax(a,b) {  
    return a>b?a:b;  
};//注意這后面的分號(hào)不能少,因?yàn)槲覀兌x的是一個(gè)變量!   

和用函數(shù)語(yǔ)句定義不同的是,只能在函數(shù)定義語(yǔ)句之后調(diào)用該函數(shù),且調(diào)用的時(shí)候只能用變量名funct,不能用函數(shù)名getMax,如:

var funct = function getMax(a,b) {  
    return a>b?a:b;  
};  
console.log(funct(1,2));//輸出2  

匿名函數(shù);

所謂匿名函數(shù)就是關(guān)鍵字function之后直接是參數(shù)列表:

var funct = function(a,b) {  
    return a>b?a:b;  
};  

這個(gè)函數(shù)沒有名字,它被賦值給了變量funct,所以叫匿名函數(shù)。同樣,也只能在這一語(yǔ)句之后調(diào)用該函數(shù)。

var funct = function(a,b) {  
    return a>b?a:b;  
};  
console.log(funct(1,2));//輸出2  

總結(jié):用表達(dá)式定義函數(shù)是即拿即用的,定義了就只能在這一語(yǔ)句之后調(diào)用該函數(shù)

3.函數(shù)的調(diào)用

在實(shí)訓(xùn)四中,我們?cè)?jīng)介紹過對(duì)象可以有自己的方法,當(dāng)然這也是函數(shù)。這種函數(shù)的調(diào)用和前面兩關(guān)定義的函數(shù)有細(xì)小的區(qū)別。

//函數(shù)的定義:求三個(gè)數(shù)的最大值  
function max(a,b,c) {  
    if(a > b) {  
        if(a > c)  
            return a;  
        else   
            return c;  
    }  
    else {  
        if(b > c)  
            return b;  
        else   
            return c;  
    }  
}  
//調(diào)用該函數(shù)  
var result = max(1,2,3);//result為3  
console.log(result);//輸出3  

調(diào)用函數(shù)的時(shí)候,需要傳入和形參相同個(gè)數(shù)的的具體值,上面的函數(shù)有3個(gè)參數(shù),所以下面調(diào)用的時(shí)候傳入3個(gè)具體的值,1傳給參數(shù)a,2傳給參數(shù)b,3傳給參數(shù)c。函數(shù)的返回值通過賦值符號(hào)=傳給了變量result。如果函數(shù)體內(nèi)沒有return關(guān)鍵字,將返回undefined。

對(duì)象里定義的函數(shù)的調(diào)用:

var ob = {  
    id:1,  
    getMax:function(a,b) {  
        return a>b?a:b;  
    }  
};  
var result = ob.getMax(2,1);//result值為2  
var result1 = ob["getMax"](2,1);//result1的值也是2  

與上面的區(qū)別是,這里要定位到函數(shù),需要使用對(duì)象名.函數(shù)名或者對(duì)象名["函數(shù)名"],其它相同。

4.未定義的實(shí)參

在大部分的編程語(yǔ)言里面,都會(huì)對(duì)調(diào)用函數(shù)時(shí)傳入的實(shí)參個(gè)數(shù)和類型進(jìn)行檢查,而JavaScript既不檢查實(shí)參的類型,也不檢查實(shí)參的個(gè)數(shù)。
JavaScript中的實(shí)參會(huì)按照順序從左到右依次匹配上形參,例如:

function myFunction(a,b,c) {  
    console.log(a);  
    console.log(b);  
    console.log(c);  
}  
myFunction(1,2,3);  

實(shí)參1傳入形參a,實(shí)參2傳入形參b,實(shí)參3傳入形參c。 當(dāng)實(shí)參個(gè)數(shù)少于形參時(shí),靠右的形參會(huì)被傳入值undefined。如:

function myFunction(a,b,c) {  
    console.log(a);  
    console.log(b);  
    console.log(c);  
}  
myFunction(1,2);  

實(shí)參1傳入形參a,實(shí)參2傳入形參b,undefined傳入形參c。 如果只想給右側(cè)的參數(shù)傳入數(shù)據(jù),可以給前幾個(gè)實(shí)參傳入undefined。如:

function myFunction(a,b,c){  
console.log(a);  
console.log(b);  
console.log(c);  
}  
myFunction(undefined,1,2);  

上面這兩種做法不夠嚴(yán)謹(jǐn),最佳實(shí)踐是給可能被傳入undefined值的形參設(shè)定一個(gè)默認(rèn)值。如:

function getSum(a,b,c) {  
    if(c === undefined)   
        c = 0;  
    console.log(a+b+c);  
}  
myFunction(1,2);  

5.實(shí)參對(duì)象

JavaScript一切都是對(duì)象,實(shí)參也是一個(gè)對(duì)象,有一個(gè)專門的名字arguments,這個(gè)對(duì)象可以看成一個(gè)數(shù)組(類數(shù)組,不是真的數(shù)組),實(shí)參從左到右分別是arguments[0]、arguments[1]...,arguments.length表示實(shí)參的個(gè)數(shù)。

//求參數(shù)的和  
function getSum() {  
    var aLength = arguments.length;  
    var sum = 0;  
    for(var i = 0;i < aLength;i++) {  
        sum += arguments[i];  
    }  
    return sum;  
}  
console.log(getSum(1,2,3,4,5))//輸出15  

這里的形參直接省略,使用arguments[i]表示。

6.對(duì)象作為參數(shù)

復(fù)雜的函數(shù)通常多達(dá)十幾個(gè)參數(shù),盡管JavaScript不做參數(shù)個(gè)數(shù)和類型的檢查,但是調(diào)用時(shí)實(shí)參的順序不能亂。開發(fā)人員需要檢查每一個(gè)實(shí)參和形參的對(duì)應(yīng)關(guān)系,這樣效率很低。一種很好的解決方案是使用對(duì)象作為參數(shù),函數(shù)會(huì)根據(jù)對(duì)象的屬性名操作參數(shù)。

function myFunction(obj) {  
    console.log(obj.name);  
    obj.number++;  
    return obj.number;  
}  
myObj = {name:"myObj",number:34};  
myFunction(myObj);//輸出myObj  
console.log(myObj.number);//輸出35  

7.函數(shù)對(duì)象作為另一個(gè)函數(shù)的參數(shù)

一個(gè)函數(shù)(為方便行文,稱為a函數(shù))可以作為另外一個(gè)函數(shù)(稱為b函數(shù))的參數(shù),b函數(shù)最終可以返回一個(gè)具體的值。

從原理上來說,b函數(shù)在自己的函數(shù)體內(nèi)調(diào)用了a函數(shù),所以需要把a(bǔ)函數(shù)的名字作為實(shí)際參數(shù)傳遞給b函數(shù)。如下:

//求最大值  
function getMax(a,b) {  
    return a>b?a:b;  
}  
//求最小值  
function getMin(a,b) {  
    return a<b?a:b;  
}  
//下面這個(gè)函數(shù)以函數(shù)作為參數(shù),并最終返回一個(gè)值  
function getM(func,num1,num2) {  
    return func(num1,num2);  
}  
getM(getMax,1,2);//返回2  
getM(getMin,1,2);//返回1  

我們把a(bǔ)函數(shù)的名字(getMax或者getMin)傳給b函數(shù)(getM()),然后在b函數(shù)內(nèi)部調(diào)用傳入的a函數(shù),得到相關(guān)的結(jié)果。

總結(jié)

到此這篇關(guān)于JavaScript函數(shù)的定義和基本使用方法的文章就介紹到這了,更多相關(guān)JS函數(shù)定義和使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JS實(shí)現(xiàn)簡(jiǎn)單拖拽效果

    JS實(shí)現(xiàn)簡(jiǎn)單拖拽效果

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)拖拽效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 得到元素真實(shí)的背景顏色的js代碼

    得到元素真實(shí)的背景顏色的js代碼

    這個(gè)函數(shù)來自Rico,Longbill及Dnew.cn修改。 說明: 傳入?yún)?shù)一個(gè),為元素的id值或元素本身,返回為元素的真實(shí)背景色值(字符串)。背景值均為16進(jìn)制的值(原代碼是是IE里面返回的是16進(jìn)制的值,而Mozilla則是rgb值,Dnew.cn將其修改為均返回16進(jìn)制的值)。
    2007-12-12
  • 詳解JavaScript什么情況下不建議使用箭頭函數(shù)

    詳解JavaScript什么情況下不建議使用箭頭函數(shù)

    箭頭函數(shù)作為ES6新增的語(yǔ)法,在使用時(shí)不僅能使得代碼更加簡(jiǎn)潔,而且在某些場(chǎng)景避免this指向問題。但是箭頭函數(shù)不是萬能的,也有自己的缺點(diǎn)以及不適用的場(chǎng)景,本文總結(jié)了JavaScript什么情況下不建議使用箭頭函數(shù),感興趣的可以了解一下
    2022-06-06
  • 微信小程序基于ColorUI構(gòu)建皮皮蝦短視頻去水印組件

    微信小程序基于ColorUI構(gòu)建皮皮蝦短視頻去水印組件

    這篇文章主要介紹了微信小程序-基于ColorUI構(gòu)建皮皮蝦短視頻去水印組件,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-11-11
  • js實(shí)現(xiàn)簡(jiǎn)單的手風(fēng)琴效果

    js實(shí)現(xiàn)簡(jiǎn)單的手風(fēng)琴效果

    本文主要介紹了js實(shí)現(xiàn)簡(jiǎn)單手風(fēng)琴效果的實(shí)例,具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-02-02
  • JS創(chuàng)建自定義對(duì)象的六種方法總結(jié)

    JS創(chuàng)建自定義對(duì)象的六種方法總結(jié)

    這篇文章主要給大家介紹了關(guān)于JS創(chuàng)建自定義對(duì)象的六種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • JavaScript 中級(jí)筆記 第二章

    JavaScript 中級(jí)筆記 第二章

    對(duì)象是組成JavaScript的基本單元。本章將從JavaScript語(yǔ)言中最重要的幾個(gè)部分開始介紹:引用,函數(shù)重載,作用域,閉包和上下文。有了這些知識(shí)后,面向?qū)ο箝_發(fā)就將變得簡(jiǎn)單。
    2009-09-09
  • JavaScript基于用戶照片姓名生成海報(bào)

    JavaScript基于用戶照片姓名生成海報(bào)

    這篇文章主要介紹了JavaScript基于用戶照片姓名生成海報(bào),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 原生js實(shí)現(xiàn)五子棋游戲

    原生js實(shí)現(xiàn)五子棋游戲

    這篇文章主要為大家詳細(xì)介紹了原生js實(shí)現(xiàn)五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • Web版彷 Visual Studio 2003 顏色選擇器

    Web版彷 Visual Studio 2003 顏色選擇器

    Web版彷 Visual Studio 2003 顏色選擇器...
    2007-01-01

最新評(píng)論

太原市| 乐昌市| 海林市| 九寨沟县| 太原市| 胶南市| 克拉玛依市| 阿坝县| 射洪县| 增城市| 辽宁省| 广昌县| 定边县| 海丰县| 潮安县| 邵阳市| 长兴县| 沧州市| 民权县| 昭觉县| 塘沽区| 连城县| 普兰县| 荥阳市| 台江县| 育儿| 泉州市| 麻栗坡县| 泊头市| 牙克石市| 安新县| 东港市| 绍兴县| 铜山县| 获嘉县| 都匀市| 姜堰市| 临猗县| 临猗县| 鄯善县| 娄烦县|