js中if语句的几种优化代码写法


Posted in Javascript onMarch 12, 2011

尽管我还没使用它去做一些尝试性的测试,但从这里可以看到它的确对js作了美化的工作。也许有人认为if语句就那么简单,能优化到什么程度?但是看看以下的几种方式,你也许会改变看法。

一、使用常见的三元操作符

if (foo) bar(); else baz(); ==> foo?bar():baz(); 
if (!foo) bar(); else baz(); ==> foo?baz():bar(); 
if (foo) return bar(); else return baz(); ==> return foo?bar():baz();

对于以上使用三元操作符来优化if语句你肯定不会陌生,或许你经常使用它。

二、使用and(&&)和or(||)运算符

if (foo) bar(); ==> foo&&bar(); 
if (!foo) bar(); ==> foo||bar();

老实说,我并没有这样去写过代码,这种写法我在学习《鸟哥的 Linux 私房菜》时看到过,但我并没想到在js中实现它。

三、省略大括号{}

if (foo) return bar(); else something(); ==> {if(foo)return bar();something()}

这种写法你我都很熟悉,但我建议在代码优化的时候这样做,或者交给UglifyJS帮你去解决。毕竟少一个大括号,代码的可阅读性并不高。

写到这里,我想到jQuery之父在《精通 JavaScript》中的一个获取HTML元素属性的方法。

function getAttr(el, attrName){ 
var attr = {'for':'htmlFor', 'class':'className'}[attrName] || attrName; 
};

如果我们不这样写,可能我们需借助于两个if语句来进行处理,而上面的代码不仅简洁有效,而且可阅读性强。

仔细想想,好些时候我们都能找到解决问题的有效途径,但关键在于我们是否用心去寻找一种更好的途径。

Javascript 相关文章推荐
JS 统计时间
Mar 09 Javascript
javascript使用eval或者new Function进行语法检查
Oct 16 Javascript
JavaScript prototype属性深入介绍
Nov 27 Javascript
javaScript使用EL表达式的几种方式
May 27 Javascript
JavaScript中的闭包介绍
Mar 15 Javascript
jQuery实现美观的多级动画效果菜单代码
Sep 06 Javascript
在Docker快速部署Node.js应用的详细步骤
Sep 02 Javascript
javascript创建对象的3种方法
Nov 02 Javascript
JS用斜率判断鼠标进入DIV四个方向的方法
Nov 07 Javascript
jQuery学习笔记之入门
Dec 14 Javascript
vue绑定设置属性的多种方式(5)
Aug 16 Javascript
vue2.x集成百度UEditor富文本编辑器的方法
Sep 21 Javascript
鼠标事件延时切换插件
Mar 12 #Javascript
autoIMG 基于jquery的图片自适应插件代码
Mar 12 #Javascript
再谈javascript图片预加载技术(详细演示)
Mar 12 #Javascript
在jQuery1.5中使用deferred对象 着放大镜看Promise
Mar 12 #Javascript
使用jquery插件实现图片延迟加载技术详细说明
Mar 12 #Javascript
Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件
Mar 12 #Javascript
javascript textarea光标定位方法(兼容IE和FF)
Mar 12 #Javascript
You might like
计数器详细设计
2006/10/09 PHP
给php新手谈谈我的学习心得
2007/02/25 PHP
php mysql数据库操作类
2008/06/04 PHP
php rsa加密解密使用详解
2015/01/14 PHP
PHP简单日历实现方法
2016/07/20 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
php测试kafka项目示例
2020/02/06 PHP
用js怎么把&字符换成"&amp:"
2006/10/19 Javascript
javascript qq右下角滑出窗口 sheyMsg
2010/03/21 Javascript
实现web打印的各种方法介绍及实现代码
2013/01/09 Javascript
js中精确计算加法和减法示例
2014/03/28 Javascript
js通过更改按钮的显示样式实现按钮的滑动效果
2014/04/23 Javascript
jQuery制作可自定义大小的拼图游戏
2015/03/30 Javascript
Javascript中使用parseInt函数需要注意的问题
2015/04/02 Javascript
JS实现带缓冲效果打开、关闭、移动一个层的方法
2015/05/09 Javascript
jQuery表单验证功能实例
2015/08/28 Javascript
javascript实现加载xml文件的方法
2015/11/24 Javascript
JS获取屏幕高度的简单实现代码
2016/05/24 Javascript
easyUI实现类似搜索框关键词自动提示功能示例代码
2016/12/27 Javascript
微信小程序左右滚动公告栏效果代码实例
2019/09/16 Javascript
如何利用python制作时间戳转换工具详解
2018/09/12 Python
Python图片的横坐标汉字实例
2019/12/04 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
2020/05/29 Python
matplotlib设置颜色、标记、线条,让你的图像更加丰富(推荐)
2020/09/25 Python
可能这些是你想要的H5软键盘兼容方案(小结)
2019/04/23 HTML / CSS
Rodd & Gunn澳大利亚官网:新西兰男装品牌
2018/09/25 全球购物
给老师的道歉信
2014/01/11 职场文书
房产委托公证书
2014/04/08 职场文书
安全协议书范本
2014/04/21 职场文书
离婚协议书应该怎么写
2014/10/12 职场文书
2014年护理部工作总结
2014/11/14 职场文书
2014年乡镇工会工作总结
2014/12/02 职场文书
乡镇法制宣传日活动总结
2015/05/05 职场文书
让生命充满爱观后感
2015/06/08 职场文书
学校证明范文
2015/06/24 职场文书
教师读书活动心得体会
2016/01/14 职场文书