真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

在JS中避免過多的使用IF語句方法有哪些

本篇內(nèi)容主要講解“在JS中避免過多的使用IF語句方法有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“在JS中避免過多的使用IF語句方法有哪些”吧!

創(chuàng)新互聯(lián)是一家專業(yè)提供鎮(zhèn)坪企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計、成都做網(wǎng)站、H5頁面制作、小程序制作等業(yè)務(wù)。10年已為鎮(zhèn)坪眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

1. 三元運算符

(1) 事例1

帶有IF的代碼:

function saveCustomer(customer) {   if (isCustomerValid(customer)) {     database.save(customer)   } else {     alert('customer is invalid')   } }

重構(gòu)后代碼:

function saveCustomer(customer) {   return isCustomerValid(customer)     ? database.save(customer)     : alert('customer is invalid') }

使用 ES6

const saveCustomer = customer =>    isCustomerValid(customer)?      database.save(customer) : alert('customer is invalid')

(2) 事例2

帶有IF的代碼:

 function customerValidation(customer) {    if (!customer.email) {      return error('email is require')    } else if (!customer.login) {     return error('login is required')    } else if (!customer.name) {      return error('name is required')    } else {      return customer   } }

重構(gòu)后代碼:

const customercustomerValidation = customer =>   !customer.email   ? error('email is required')   : !customer.login ? error('login is required')   : !customer.name  ? error('name is required')                     : customer

(3) 事例3

帶有IF的代碼:

 function getEventTarget(evt) {      if (!evt) {          evt = window.event;      }      if (!evt) {          return;      }      const target;      if (evt.target) {         target = evt.target;     } else {         target = evt.srcElement;     }     return target; }

重構(gòu)后代碼:

function getEventTarget(evt) {   evtevt = evt || window.event;   return evt && (evt.target || evt.srcElement); }

2. 短路運算符

(1) 事例1

帶有IF的代碼:

 const isOnline = true;  const makeReservation= ()=>{};  const user = {      name:'Damian',      age:32,      dni:33295000  };    if (isOnline){     makeReservation(user); }

重構(gòu)后代碼:

const isOnline = true; const makeReservation= ()=>{}; const user = {     name:'Damian',     age:32,     dni:33295000 };  isOnline&&makeReservation(user);

(2) 事例2

帶有IF的代碼:

 const active = true;  const loan = {      uuid:123456,      ammount:10,      requestedBy:'rick'  };    const sendMoney = ()=>{};   if (active&&loan){     sendMoney(); }

重構(gòu)后代碼:

const active = true; const loan = {     uuid:123456,     ammount:10,     requestedBy:'rick' };  const sendMoney = ()=>{};  ctive && loan && sendMoney();

3. 函數(shù)委托

事例1

帶有IF的代碼:

function itemDropped(item, location) {     if (!item) {         return false;     } else if (outOfBounds(location) {         var error = outOfBounds;         server.notify(item, error);         items.resetAll();         return false;     } else {        animateCanvas();        server.notify(item, location);        return true;    }

重構(gòu)后代碼:

 function itemDropped(item, location) {      const dropOut = function() {          server.notify(item, outOfBounds);         items.resetAll();          return false;      }       const dropIn = function() {          server.notify(item, location);         animateCanvas();         return true;     }      return !!item && (outOfBounds(location) ? dropOut() : dropIn()); }

4. 非分支策略

此技巧嘗試避免使用switch語句,相反是用鍵/值創(chuàng)建一個映射并使用一個函數(shù)訪問作為參數(shù)傳遞的鍵的值。

(1) 事例1

帶有switch的代碼:

 switch(breed){      case 'border':        return 'Border Collies are good boys and girls.';        break;        case 'pitbull':        return 'Pit Bulls are good boys and girls.';        break;        case 'german':        return 'German Shepherds are good boys and girls.';       break;     default:       return 'Im default' }

重構(gòu)后代碼:

const dogSwitch = (breed) =>({   "border": "Border Collies are good boys and girls.",   "pitbull": "Pit Bulls are good boys and girls.",   "german": "German Shepherds are good boys and girls.",   })[breed]||'Im the default';   dogSwitch("border xxx")

5. 作為數(shù)據(jù)的函數(shù)

我們知道在JS中函數(shù)是第一個類,所以使用它我們可以把代碼分割成一個函數(shù)對象。

帶有IF的代碼:

 const calc = {      run: function(op, n1, n2) {          const result;          if (op == "add") {              result = n1 + n2;          } else if (op == "sub" ) {              result = n1 - n2;          } else if (op == "mult" ) {              result = n1 * n2;         } else if (op == "div" ) {             result = n1 / n2;         }         return result;     } }  calc.run("sub", 5, 3); //2

重構(gòu)后代碼:

 const calc = {      add : function(a,b) {          return a + b;      },      sub : function(a,b) {          return a - b;      },      mult : function(a,b) {          return a * b;     },     div : function(a,b) {         return a / b;     },     run: function(fn, a, b) {         return fn && fn(a,b);     } }  calc.run(calc.mult, 7, 4); //28

6. 多態(tài)性

多態(tài)性是對象具有多種形式的能力。OOP中多態(tài)性最常見的用法是使用父類引用來引用子類對象。

帶有IF的代碼:

 const bob = {    name:'Bob',    salary:1000,    job_type:'DEVELOPER'  };    const mary = {    name:'Mary',    salary:1000,   job_type:'QA' };  const calc = (person) =>{      if (people.job_type==='DEVELOPER')         return person.salary+9000*0.10;      if (people.job_type==='QA')         return person.salary+1000*0.60; }  console.log('Salary',calc(bob)); console.log('Salary',calc(mary));

重構(gòu)后代碼:

 const qaSalary  = (base) => base+9000*0.10;  const devSalary = (base) => base+1000*0.60;    //Add function to the object.  const bob = {    name:'Bob',    salary:1000,    job_type:'DEVELOPER',    calc: devSalary };  const mary = {   name:'Mary',   salary:1000,   job_type:'QA',   calc: qaSalary };  console.log('Salary',bob.calc(bob.salary)); console.log('Salary',mary.calc(mary.salary));

到此,相信大家對“在JS中避免過多的使用IF語句方法有哪些”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!


文章標(biāo)題:在JS中避免過多的使用IF語句方法有哪些
文章出自:http://weahome.cn/article/iehhgh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部