javascript學習筆記2-函數

來源:互聯網
上載者:User

2.函數

2.1函數直接量

函數直接量是用作運算式,而不是用作語句,它無需指定函數名。與函數寫法的比較:

Js代碼

function f(){}
var f = function(){}

2.2函數的參數

Js中函數的參數個數和類型是可以很任意的,這就需要用於實質的情況進行相應的判斷處理。

選擇性參數

如果一個函數的參數是可選的,那麼如果沒有傳的話,則是underfined的值,則在函數裡用||對它進行賦預設值。這種寫法很常用。

用對象來作為函數的參數

當函數的參數較長的用,且常與||一起使用。

參數類型

如果對函數的參數類型有著嚴格的要求,那麼記得一定要在函數內對類型做判斷,如果類型不正確,則拋出異常來報告這一事實。如arraycopy()方法,期望的參數是數組,則如果傳入的不是數組,那麼需要拋出。

再比如我們計算一個數組所有元素的和,如果是在以前,程式裡是數組裡預先是判定所有的元素都是數值的,然後根據數值的元素的情況去求和。但是,很多時候開發人員並不是一個人,可能你要處理的數組是別人開個介面提供給你的,或者你是從資料庫去取出資料來構造出數組,這時候你就不能都把元素當作數值來判斷,必須對傳入的是否是數組,及元素是否是數值進行相應的判斷,如果元素有underfined或null時忽略,或元素包含有不是數值時給出提示,或傳入的值不是數組時給出提示。具體的代碼如下:

Js代碼

function ArrayUserCommMgr{}
ArrayUserCommMgr.prototype={
 isArray:function(a){
  var result = false;
  if((a instanceof Array)||(a && typeof a == "object" && "length" in a)){
  result = true;
 }
 return result;
 },
 getSum:function(a){
 if (arrayUserCommMgr.isArray()){
  var total = 0;
  for(var i = 0; i < a.length; i++) {
  var element = a[i];
  if (!element) continue; // ignore null and undefined elements
  if (typeof element == "number"){
   total += element;
  }else{
   throw new Error("sum(): all array elements must be numbers");
  }
  }
 }else{
  throw new Error("sum(): argument must be an array");
 }
 }
}

以上代碼注意的是:

1、用((a instanceof Array)||

(a && typeof a == "object" && "length" in a))

來判斷是否傳入的是數組(instanceof Array),或類似數組的對象((a && typeof a == "object" && "length" in a))

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.