中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript函數對象的參數怎么使用

發布時間:2022-04-25 15:49:16 來源:億速云 閱讀:121 作者:iii 欄目:大數據

這篇文章主要介紹了JavaScript函數對象的參數怎么使用的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇JavaScript函數對象的參數怎么使用文章都會有所收獲,下面我們一起來看看吧。

對象參數使用解構

如果希望函數接收很多參數(如果超過兩個),那么就應該使用對象。在此基礎上,可以使用解構語法提取需要的參數。

普通寫法

const greet = (obj) => {
  return `${obj.greeting}, ${obj.firstName}${obj.lastName}`;
}

改寫

const greet = ({
  greeting,
  firstName,
  lastName
}) => {
  return `${greeting}, ${firstName}${lastName}`;
}

使用解構方式會更優雅,并且我們還可以少寫很多重復的東西,命名也會更加清晰。

命名回調函數

好的命名會使閱讀代碼更容易,回調函數的命名也是一樣。

普通寫法

const arr = [1, 2, 3].map(a => a * 2);

改寫

const double = a => a * 2;
const arr = [1, 2, 3].map(double);

分開命名,可以更好的一眼看出代碼的含義,如上:根據名字很明顯可以看出回調函數作用是用來加倍原始數組的每個元素的。

讓條件句具有描述性

對于復雜的條件判斷,我們可以單獨使用函數來表示,會讓條件語句更具描述性。

普通寫法

if (score === 100 || remainingPlayers === 1 || remainingPlayers === 0) {
    quitGame();
  }

改寫

const winnerExists = () => {
  return score === 100 ||
    remainingPlayers === 1 ||
    remainingPlayers === 0
}
if (winnerExists()) {
  quitGame();
}

按原來的寫法,我們有很長的表達式在括號里面,但是不太好看出它在判斷的是什么。改寫之后,我們把它放在一個命名函數中,根據名字我們就能大概看出表達的意思。

用 Map 或 Object替換 switch 語句

當你的 switch語句很長時,就說明你應該簡化你的代碼了

普通寫法

const getValue = (prop) => {
  switch (prop) {
    case "a": {
      return 1;
    }
    case "b": {
      return 2;
    }
    case "c": {
      return 3;
    }
  }
}
const val = getValue("a");

Object改寫

const obj = {
  a: 1,
  b: 2,
  c: 3
}
const val = obj["a"];

我們使用switch嵌套多個帶有多個return語句的塊,只是為了獲得給定prop值的返回值時,我們僅僅使用一個對象也可以實現同樣的效果。

Map改寫

const map = new Map([["a", 1], ["b", 2], ["c", 3]])
const val = map.get("a")

使用Map時,代碼也短很多。我們通過傳遞一個數組,數組中的每項包含鍵和值。然后,我們僅使用Map實例的get方法從鍵中獲取值。Map優于對象的一個好處是,我們可以將數字,布爾值或對象等其他值用作鍵。而對象只能將字符串或symbol作為鍵。

使用 Object.assign 設置默認屬性

普通寫法

const menuConfig = {
  title: null,
  body: "Bar"
};
function createMenu(config) {
  config.title = config.title || "Foo";
  config.body = config.body || "Bar";
}
createMenu(menuConfig);

改寫

const menuConfig = {
  title: "Order",
  body: "Send"
};
function createMenu(config) {
  config = Object.assign({
    title: "Foo",
    body: "Bar"
  }, config);
  // config : {title: "Order", body: "Bar"}
  // ...
}
createMenu(menuConfig);

刪除重復代碼,合并相似函數;刪除棄用代碼

不好的寫法

var paging = function( currPage ){
    if ( currPage <= 0 ){
        currPage = 0;
        jump( currPage );    // 跳轉
    }else if ( currPage >= totalPage ){
        currPage = totalPage;
        jump( currPage );    // 跳轉
    }else{
        jump( currPage );    // 跳轉
    }
};

改寫

var paging = function( currPage ){
    if ( currPage <= 0 ){
        currPage = 0;
    }else if ( currPage >= totalPage ){
        currPage = totalPage;
    }
    jump( currPage );    // 把jump函數獨立出來
};

提煉函數

如果一個函數過長,不得不加上若干注釋才能讓這個函數顯得易讀一些,那這些函數就很有必要進行重構。

如果在函數中有一段代碼可以被獨立出來,那我們最好把這些代碼放進另外一個獨立的函數。

示例

比如在一個負責取得用戶信息的函數里面,我們還需要打印跟用戶信息有關的log

var getUserInfo = function(){
    ajax( "http:// xxx.com/userInfo", function( data ){
        console.log( "userId: " + data.userId );
        console.log( "userName: " + data.userName );
        console.log( "nickName: " + data.nickName );
    });
};

改寫

我們可以把打印log的語句封裝在一個獨立的函數里。

var getUserInfo = function(){
    ajax( "http:// xxx.com/userInfo", function( data ){
        printDetails( data );
    });
};

var printDetails = function( data ){
    console.log( "userId: " + data.userId );
    console.log( "userName: " + data.userName );
    console.log( "nickName: " + data.nickName );
};

關于“JavaScript函數對象的參數怎么使用”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“JavaScript函數對象的參數怎么使用”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

柘城县| 珠海市| 淮安市| 梧州市| 连平县| 荔波县| 丰台区| 焉耆| 岢岚县| 莱阳市| 启东市| 白沙| 宜州市| 屏东县| 尤溪县| 思茅市| 西丰县| 新郑市| 永顺县| 色达县| 玛纳斯县| 涟水县| 和林格尔县| 绵竹市| 开远市| 合阳县| 武定县| 东莞市| 泰兴市| 昌图县| 卓尼县| 雅安市| 上蔡县| 旅游| 华阴市| 麻城市| 明溪县| 民勤县| 栾川县| 五家渠市| 嵊州市|