首頁 >web前端 >js教程 >一起聊聊JavaScript函數的定義與基本使用

一起聊聊JavaScript函數的定義與基本使用

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB轉載
2022-07-01 11:59:042127瀏覽

本篇文章為大家帶來了關於javascript的相關知識,其中主要整理了函數的定義與基本使用的相關問題,包括了用函數語句定義、函數的呼叫、未定義的實參等等內容,下面一起來看一下,希望對大家有幫助。

一起聊聊JavaScript函數的定義與基本使用

【相關推薦:javascript影片教學web前端

##1.用函數語句定義


先給一個例子,函數的功能是傳回數組元素的和;

function sumArray(arr) {  
    var sum = 0;  
    for(var i = 0,aLength = arr.length;i 關鍵字<p>function<code>後面空一格,</code>sumArray <code>是函數的名字,其命名規範與變數名稱的命名規範相同:</code>只能有字母、數字、底線和美元符號,不能以數字開頭,不能是關鍵字。 <strong></strong></p>括號中是參數,又叫<p>形式參數<strong>,只需要參數名稱就可以。參數可以是</strong>0<code>個、</code>1<code>個或多個,彼此之間用</code>,<code>隔開,</code>{}<code>中間包含的是</code>函數體<strong>。含有一條或多條語句。函數體用來實現函數的功能。 </strong></p>關鍵字<p>return<code>後面是函數的</code>回傳值<strong>,函數也可以沒有回傳值。函數運行完</strong>return<code>這句話這裡就會退出運行,</code>return<code>下面的語句</code>不再執行<strong>。傳回值即函數的輸出。 </strong></p>用這種方式定義的函數,<p>在函數定義的前面和後面都可以呼叫該函數<strong>,只要函數和呼叫函數的語句在一個原始檔裡面就可以了。 </strong></p>2.用表達式定義<h2></h2>用表達式的方式定義函數,就是用賦值表達式<p>把函數賦值給一個變數<strong>,這其實就是把函數看成一個變數。這個時候函數可以有名字,也可以沒有名字,沒有名字的函數叫做</strong>匿名函數<strong>。 </strong></p>
    有名字的;
var funct = function getMax(a,b) {  
    return a>b?a:b;  };//注意这后面的分号不能少,因为我们定义的是一个变量!

用函數語句定義不同的是,只能在函數定義語句之後呼叫函數,且呼叫的時候只能用變數名稱funct,不能用函數名稱getMax,如:

var funct = function getMax(a,b) {  
    return a>b?a:b;  
};  
console.log(funct(1,2));//输出2
    匿名函數;
  • 所謂匿名函數就是關鍵字
    function之後直接是參數列表:
var funct = function(a,b) {  
    return a>b?a:b;  };
這個函數沒有名字,它被賦值給了變數

funct,所以叫匿名函數。同樣,也只能在這一語句之後呼叫該函數。

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

總結:用表達式定義函數是即拿即用的,定義了就只能在這一語句之後呼叫該函數

3 .函數的呼叫

在實訓四中,我們曾經介紹過物件可以有自己的方法,當然這也是函數。這種函數的呼叫和前面兩關定義的函數有細小的差別。

//函数的定义:求三个数的最大值  
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;  
    }  
}  
//调用该函数  
var result = max(1,2,3);//result为3  
console.log(result);//输出3
呼叫函數的時候,需要傳入和形參相同個數的的具體值,上面的函數有

3個參數,所以下面呼叫的時候傳入 3個具體的值,1傳給參數a2傳給參數b3傳給參數c。函數的回傳值透過賦值符號=傳給了變數result。如果函數體內沒有return關鍵字,將會傳回undefined

物件裡定義的函數的呼叫:

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
與上面的差異是,這裡要定位到函數,需要使用

物件名稱.函數名稱物件名稱["函數名稱"],其它相同。

4.未定義的實參

在大部分的程式語言裡面,都會對呼叫函數時傳入的實參數和型別進行檢查,而

JavaScript不檢查實參的類型,也不檢查實參的個數。
JavaScript中的實參會依照順序從左到右依序比對上形參,例如:

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

1傳入形參a,實參2傳入形參b,實參3傳入形參c。當實參個數少於形參時,靠右的形參會被傳入值undefined。如:

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

1傳入形參a,實參2傳入形參bundefined傳入形參c。如果只想給右側的參數傳入數據,可以給前幾個實參傳入undefined。如:

function myFunction(a,b,c){  console.log(a);  console.log(b);  console.log(c);  }  myFunction(undefined,1,2);
上面這兩種做法不夠嚴謹,最佳實踐是給可能被傳入

undefined值的形參設定一個預設值。如:

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

5.实参对象

JavaScript一切都是对象,实参也是一个对象,有一个专门的名字arguments,这个对象可以看成一个数组(类数组,不是真的数组),实参从左到右分别是arguments[0]、arguments[1]...arguments.length表示实参的个数。

//求参数的和  function getSum() {  
    var aLength = arguments.length;  
    var sum = 0;  
    for(var i = 0;i <p>这里的形参直接省略,使用<code>arguments[i]</code>表示。</p><h2>6.对象作为参数</h2><p>复杂的函数通常多达十几个参数,尽管<code>JavaScript</code>不做参数个数和类型的检查,但是调用时实参的顺序不能乱。开发人员需要检查每一个实参和形参的对应关系,这样效率很低。一种很好的解决方案是使用对象作为参数,函数会根据对象的<strong>属性名</strong>操作参数。</p><pre class="brush:php;toolbar:false">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.函数对象作为另一个函数的参数

一个函数(为方便行文,称为a函数)可以作为另外一个函数(称为b函数)的参数b函数最终可以返回一个具体的值。

从原理上来说,b函数在自己的函数体内调用了a函数,所以需要把a函数的名字作为实际参数传递给b函数。如下:

//求最大值  function getMax(a,b) {  
    return a>b?a:b;  }  //求最小值  function getMin(a,b) {  
    return a<b></b><p>我们把<code>a</code>函数的名字(<code>getMax</code>或者<code>getMin</code>)传给<code>b</code>函数(<code>getM()</code>),然后在<code>b</code>函数内部调用传入的<code>a</code>函数,得到相关的结果。</p><p>【相关推荐:<a href="https://www.php.cn/course/list/17.html" target="_blank" textvalue="javascript视频教程">javascript视频教程</a>、<a href="https://www.php.cn/course/list/1.html" target="_blank">web前端</a>】</p>

以上是一起聊聊JavaScript函數的定義與基本使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除