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 相关文章推荐
javascript之Partial Application学习
Jan 10 Javascript
javascript单例模式的简单实现方法
Jul 25 Javascript
jQuery基本过滤选择器用法示例
Sep 09 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
Oct 11 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
Oct 27 Javascript
Vue.directive自定义指令的使用详解
Mar 10 Javascript
一份超级详细的Vue-cli3.0使用教程【推荐】
Nov 15 Javascript
JS函数节流和防抖之间的区分和实现详解
Jan 11 Javascript
vue-router的两种模式的区别
May 30 Javascript
Vue 使用beforeEach实现登录状态检查功能
Oct 31 Javascript
解决angular 使用原生拖拽页面卡顿及表单控件输入延迟问题
Apr 21 Javascript
vue实力踩坑之push当前页无效
Apr 10 Vue.js
鼠标事件延时切换插件
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
字母顺序颠倒而单词顺序不变的php代码
2010/08/08 PHP
php生成静态文件的多种方法分享
2012/07/17 PHP
php 判断网页是否是utf8编码的方法
2014/06/06 PHP
PHP工程师VIM配置分享
2015/12/15 PHP
PHP读取大文件的几种方法介绍
2016/10/27 PHP
php中final关键字用法分析
2016/12/07 PHP
PHP实现腾讯与百度坐标转换
2017/08/05 PHP
javascript 播放器 控制
2007/01/22 Javascript
用js实现键盘方向键翻页功能的代码
2007/06/03 Javascript
JavaScipt基本教程之前言
2008/01/16 Javascript
对于this和$(this)的个人理解
2013/09/08 Javascript
javascript相等运算符与等同运算符详细介绍
2013/11/09 Javascript
JS常用字符串处理方法应用总结
2014/05/22 Javascript
JS中产生20位随机数以0-9为例也可以是a-z A-Z
2014/08/01 Javascript
javascript格式化指定日期对象的方法
2015/04/21 Javascript
Bootstrap每天必学之栅格系统(布局)
2015/11/25 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
2016/01/08 Javascript
jQuery实现文字自动横移
2017/01/08 Javascript
基于jQuery实现瀑布流页面
2017/04/11 jQuery
js数组去重的N种方法(小结)
2018/06/07 Javascript
实例详解vue中的$root和$parent
2019/04/29 Javascript
python获取外网IP并发邮件的实现方法
2017/10/01 Python
Python使用Tkinter实现机器人走迷宫
2018/01/22 Python
解决Pycharm中import时无法识别自己写的程序方法
2018/05/18 Python
python tornado微信开发入门代码
2018/08/24 Python
python 输出所有大小写字母的方法
2019/01/02 Python
python实现图片彩色转化为素描
2019/01/15 Python
Origins悦木之源香港官网:雅诗兰黛集团高端植物护肤品牌
2018/03/21 全球购物
MADE法国:提供原创设计师家具
2018/09/18 全球购物
节约用水的口号
2014/06/20 职场文书
社区精神文明建设汇报材料
2014/08/17 职场文书
元旦晚会主持词开场白
2015/05/28 职场文书
伊索寓言读书笔记
2015/06/30 职场文书
清明节主题班会
2015/08/14 职场文书
Vue的生命周期一起来看看
2022/02/24 Vue.js
【海涛dota解说】DCG联赛第一周 LGD VS DH
2022/04/01 DOTA