在JS中避免过多的使用IF语句方法有哪些
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,本篇内容主要讲解"在JS中避免过多的使用IF语句方法有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"在JS中避免过多的使用IF语句方法有哪些"吧!1.
千家信息网最后更新 2025年11月11日在JS中避免过多的使用IF语句方法有哪些
本篇内容主要讲解"在JS中避免过多的使用IF语句方法有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"在JS中避免过多的使用IF语句方法有哪些"吧!
1. 三元运算符
(1) 事例1
带有IF的代码:
function saveCustomer(customer) { if (isCustomerValid(customer)) { database.save(customer) } else { alert('customer is invalid') } }重构后代码:
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 } }重构后代码:
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; }重构后代码:
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); }重构后代码:
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(); }重构后代码:
const active = true; const loan = { uuid:123456, ammount:10, requestedBy:'rick' }; const sendMoney = ()=>{}; ctive && loan && sendMoney();3. 函数委托
事例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; }重构后代码:
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语句,相反是用键/值创建一个映射并使用一个函数访问作为参数传递的键的值。
(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' }重构后代码:
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. 作为数据的函数
我们知道在JS中函数是第一个类,所以使用它我们可以把代码分割成一个函数对象。
带有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重构后代码:
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); //286. 多态性
多态性是对象具有多种形式的能力。OOP中多态性最常见的用法是使用父类引用来引用子类对象。
带有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));重构后代码:
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语句方法有哪些"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
代码
后代
重构
事例
函数
方法
语句
过多
多态
多态性
对象
内容
运算符
学习
运算
实用
更深
兴趣
分支
参数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
PLM 数据库设计
数据库版本工具
湖北it软件开发外包
软件开发工作量量化模型
网络安全管理合同
东营mrp软件开发价格
比较好用的软件开发工具
发生网络安全处置法律有哪些
sql服务器如何保持一直开启
文明上网加强网络安全
网络安全与隐私保护月华为
外网请求内网数据库
ARK服务器管理器怎么用
棋盘软件开发公司
北京控制软件开发
中国成都第四届网络安全大会
短信的数据库文件
设备保护网络安全的三个要素
云讯网络技术有限公司v
信息会考网络技术
金蝶数据库怎样改业务启用期间
批量管理阿里云服务器
西安恒山系列鲲鹏服务器
数据库大于2t怎么迁移
DNS服务器没有响应win7
网络安全溯源手段
所选择的数据库引擎实例对比
数据库学习推荐用书
建筑信息数据库
福建服务器提供商