概述
优化if-else语句
在日常开发中,当我们的判断条件过多的时候,经常会遇到这样的情况:
多重If-else嵌套
if(res.status === '200') { // do something } else if(res.status === '404') { // do something } else if(res.status === '500') { // do something } else { // do something }
诸如此类,我们看到这么冗长的判断条件,对于我们这些追求完美代码的人来说是多么的深恶痛绝。因此,我总结了几个常用的优化方案,分享出来,方便讨论学习。
方案一 : switch
switch 语句替换
这个是最常见的优化,再此就不多赘述。
方案二 : hash 表
这个也是我在工作中,最常用到的方法之一
let ok = function () { } let no = function () { } let error = function () { } let hashMap = { '200': ok, '404': no, '500': error } let status = res.status // 异步获取状态码 if(status in hashMap) { hashMap[status](); }
方案三: hash 表的扩展
这个是在方案二的基础上,将调用的函数在进行了封装。这样的话代码就更加具有观赏性,不过,相对而言,代码的可读性以及可维护性也就相对来说更加难理解一些。所以,在代码的优雅和可维护性之间要懂得如何取舍。
let handler = { ok: function () { console.log('ok') }, no: function () { console.log('no') }, error: function () { console.log('error') } } let statusMap = { '200': ok, '404': no, '500': error } let data = statusMap //异步回调/// async function statusHandler(){ async const status = getStatus(); handler[statusMap[status]]() }
方案四 &&符号
&& 通常我们在表达式中经常会用到这个符号,不过,在日常代码中,可以用&& 彻底代替单个if语句。而且使用完之后会感觉到&&符号的优美。
if(status) { // typeof status === 'boolean' // do something handler(); } 替换为: status && handler()
小结
到这里,我所列举出的四种优化方案,如果可以为大家在实际项目开发中提供一些帮助的话,那必是极好的。也欢迎留言一起探讨学习进步。
最后
以上就是安详树叶为你收集整理的[Javascript]如何避免if深层次嵌套优化if-else语句的全部内容,希望文章能够帮你解决[Javascript]如何避免if深层次嵌套优化if-else语句所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复