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实现在线统计一个页面内鼠标点击次数的方法
Feb 28 Javascript
javascript中hasOwnProperty() 方法使用指南
Mar 09 Javascript
window.onload与$(document).ready()的区别分析
May 30 Javascript
微信小程序 开发之顶部导航栏实例代码
Feb 23 Javascript
mui上拉加载功能实例详解
Apr 13 Javascript
详解webpack4升级指南以及从webpack3.x迁移
Jun 12 Javascript
小程序组件之仿微信通讯录的实现代码
Sep 12 Javascript
ES6入门教程之变量的解构赋值详解
Apr 13 Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
Jun 13 Javascript
使用ThinkJs搭建微信中控服务的实现方法
Aug 08 Javascript
基于vue和websocket的多人在线聊天室
Feb 01 Javascript
Vue.js中Line第三方登录api的实现代码
Jun 29 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
在Mac OS的PHP环境下安装配置MemCache的全过程解析
2016/02/15 PHP
基于PHP实现等比压缩图片大小
2016/03/04 PHP
php微信公众平台配置接口开发程序
2016/09/22 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
php解决约瑟夫环算法实例分析
2019/09/30 PHP
如何确保JavaScript的执行顺序 之jQuery.html深度分析
2011/03/03 Javascript
Jquery实现简单的动画效果代码
2012/03/18 Javascript
javascript标签在页面中的位置探讨
2013/04/11 Javascript
详解JS-- 浮点数运算处理
2016/11/28 Javascript
JQuery学习总结【二】
2016/12/01 Javascript
详解vue2.0监听属性的使用心得及搭配计算属性的使用
2018/07/18 Javascript
vue实现压缩图片预览并上传功能(promise封装)
2019/01/10 Javascript
推荐15个最好用的JavaScript代码压缩工具
2019/02/13 Javascript
纯异步nodejs文件夹(目录)复制功能
2019/09/03 NodeJs
vue学习笔记之过滤器的基本使用方法实例分析
2020/02/01 Javascript
js实现简单扫雷
2020/11/27 Javascript
JavaScript实现图片合成下载的示例
2020/11/19 Javascript
python函数参数*args**kwargs用法实例
2013/12/04 Python
python远程连接MySQL数据库
2019/04/19 Python
Python OpenCV利用笔记本摄像头实现人脸检测
2020/08/20 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
2019/08/30 Python
python MultipartEncoder传输zip文件实例
2020/04/07 Python
Python实现一个优先级队列的方法
2020/07/31 Python
Python基于gevent实现文件字符串查找器
2020/08/11 Python
Html5 页面适配iPhoneX(就是那么简单)
2019/09/05 HTML / CSS
德国香水、化妆品和护理产品网上商店:Parfumdreams
2018/09/26 全球购物
XML文档面试题
2015/08/05 面试题
留学生如何写好自荐信
2013/12/27 职场文书
最新奶茶店创业计划书
2014/01/25 职场文书
秋季运动会广播稿大全
2014/02/17 职场文书
幼儿园小班教师个人工作总结
2015/02/06 职场文书
2015年防灾减灾工作总结
2015/07/24 职场文书
2015年社区消防安全工作总结
2015/10/14 职场文书
四十九个javascript小知识实用技巧
2021/11/20 Javascript
HTML常用标签超详细整理
2022/03/19 HTML / CSS
Mysql开启外网访问
2022/05/15 MySQL