Javascript条件判断使用小技巧总结


Posted in Javascript onSeptember 08, 2008

考虑下面的代码

if (node.nextSibling.className == ...) {
...
}

在 node 或者 node.nextSibling 为空(null)的情况下,会返回错误(error)。所以,通常情况下的解决方案的代码为

if ((node) && (next = node.nextSibling) && ... ) {
...
}

那么,当条件判断一多的情况下,代码会形成下面的情况

if (
(node) &&
(node.nextSibling) &&
(node.nextSibling.className == ...)
... ) {
...
}

随着判断条件的不断的增加,代码会变得非常的“丑陋”。

有个小的“伎俩”,可以简化条件判断表达式。我们可以增加个空对象({})或者零(0)作为替代

if ( next = (node || 0).nextSibling) ) {
...
}

那么,上述的代码就可以这样写

if (((node || 0).nextSibling || 0).className == ...) {
...
}

--Split--

就个人而言,上述的从某种角度而言,代码会非常的精简。但日常实际的编码过程中,尤其是多人配合的情况下,这些代码可能会给其他开发人员造成一定的困扰。

正如 小马 所言,如果已经在使用某些框架,需要具体问题具体分析。比如上述的条件判断代码,使用 YUI 编码就可以使用

YAHOO.util.Dom.hasClass(el, className)

显得更加的精简,并且相比上述的代码更容易理解。

Javascript 相关文章推荐
JSQL 批量图片切换的实现代码
May 05 Javascript
防止页面被iframe(兼容IE,Firefox火狐)
Jul 04 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
Jun 03 Javascript
使用Node.js实现HTTP 206内容分片的教程
Jun 23 Javascript
jQuery实现鼠标选文字发新浪微博的方法
Apr 02 Javascript
jQuery实现区域打印功能代码详解
Jun 17 Javascript
浅谈Node.js:理解stream
Dec 08 Javascript
Javascript自定义事件详解
Jan 13 Javascript
详解如何使用vue-cli脚手架搭建Vue.js项目
May 19 Javascript
Vue-router的使用和出现空白页,路由对象属性详解
Sep 03 Javascript
js前端如何写一个精确的倒计时代码
Oct 25 Javascript
一篇文章学会Vue中间件管道
Jun 20 Vue.js
SyntaxHighlighter代码加色使用方法
Sep 07 #Javascript
很多人都是用下面的js刷新站IP和PV
Sep 05 #Javascript
动态修改DOM 里面的 id 属性的弊端分析
Sep 03 #Javascript
IE浏览器PNG图片透明效果代码
Sep 02 #Javascript
JavaScript监测ActiveX控件是否已经安装过的代码
Sep 02 #Javascript
JQUERY CHECKBOX全选,取消全选,反选方法三
Aug 30 #Javascript
jquery复选框CHECKBOX全选、反选
Aug 30 #Javascript
You might like
谷歌音乐搜索栏的提示功能php修正代码
2011/05/09 PHP
php验证手机号码(支持归属地查询及编码为UTF8)
2013/02/01 PHP
ThinkPHP CURD方法之table方法详解
2014/06/18 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
2016/05/19 PHP
PHP+Ajax验证码验证用户登录
2016/07/20 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
2016/08/12 PHP
通过修改referer下载文件的方法
2008/05/11 Javascript
来自qq的javascript面试题
2010/07/24 Javascript
Javascript模块化编程(三)require.js的用法及功能介绍
2013/01/17 Javascript
jQuery瀑布流插件Wookmark使用实例
2014/04/02 Javascript
JQuery中节点遍历方法实例
2015/05/18 Javascript
jquery实现具有收缩功能的垂直导航菜单
2016/02/16 Javascript
jquery自定义插件——window的实现【示例代码】
2016/05/06 Javascript
Javascript函数中的arguments.callee用法实例分析
2016/09/16 Javascript
Bootstrap jquery.twbsPagination.js动态页码分页实例代码
2017/02/20 Javascript
Vue自定义图片懒加载指令v-lazyload详解
2020/12/31 Javascript
jQuery实现滚动效果
2017/11/17 jQuery
Bootstrap4如何定制自己的颜色和风格
2018/02/26 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
2018/09/21 Javascript
koa中间件核心(koa-compose)源码解读分析
2020/06/15 Javascript
JavaScript实现Tab标签页切换的最简便方式(4种)
2020/06/28 Javascript
详解阿里Node.js技术文档之process模块学习指南
2021/01/04 Javascript
pytorch使用Variable实现线性回归
2019/05/21 Python
Flask框架实现的前端RSA加密与后端Python解密功能详解
2019/08/13 Python
python中逻辑与或(and、or)和按位与或异或(&、|、^)区别
2020/08/05 Python
html5使用canvas实现图片下载功能的示例代码
2017/08/26 HTML / CSS
Woods官网:加拿大最古老、最受尊敬的户外品牌之一
2020/09/12 全球购物
请介绍一下WSDL的文档结构
2013/03/17 面试题
品质管理部岗位职责范文
2014/03/01 职场文书
《真想变成大大的荷叶》教学反思
2014/04/14 职场文书
道德大讲堂实施方案
2014/05/14 职场文书
邮政竞聘演讲稿
2014/09/03 职场文书
营销总监岗位职责
2014/09/16 职场文书
公安派出所所长四风问题个人对照检查材料
2014/10/04 职场文书
2015年中学总务处工作总结
2015/07/22 职场文书
公司规章制度范本
2015/08/03 职场文书