Javascript 篱式条件判断


Posted in Javascript onAugust 22, 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 相关文章推荐
Javascript调用XML制作连动下拉列表框
Jun 25 Javascript
js动态给table添加/删除tr的方法
Aug 02 Javascript
Jquery 模拟用户点击超链接或者按钮的方法
Oct 25 Javascript
jquery form 隐藏的input 选择
Apr 29 Javascript
Jquery api 速查表分享
Jan 12 Javascript
Web打印解决方案之普通报表打印功能
Aug 29 Javascript
bootstrap table小案例
Oct 21 Javascript
JS实现倒计时(天数、时、分、秒)
Nov 16 Javascript
JavaScript表单验证开发
Nov 23 Javascript
Angular脚手架开发的实现步骤
Apr 09 Javascript
微信小程序实现蒙版弹出窗功能
Sep 17 Javascript
vue-video-player视频播放器使用配置详解
Oct 23 Javascript
解决AJAX中跨域访问出现'没有权限'的错误
Aug 20 #Javascript
javascript:void(0)的真正含义实例分析
Aug 20 #Javascript
利用404错误页面实现UrlRewrite的实现代码
Aug 20 #Javascript
一些不错的js函数ajax
Aug 20 #Javascript
jQuery formValidator表单验证插件开源了 含API帮助、源码、示例
Aug 14 #Javascript
jquery之Document元素选择器篇
Aug 14 #Javascript
JavaScript国旗变换效果代码
Aug 13 #Javascript
You might like
跟我学Laravel之请求(Request)的生命周期
2014/10/15 PHP
thinkPHP导出csv文件及用表格输出excel的方法
2015/12/30 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
2019/10/02 PHP
网页常用特效代码整理
2006/06/23 Javascript
永不消失的title提示代码
2007/02/15 Javascript
一个基于jquery的图片切换效果
2010/07/06 Javascript
jquery下组织javascript代码(js函数化)
2010/08/25 Javascript
JavaScript 用cloneNode方法克隆节点的代码
2012/10/15 Javascript
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
2014/01/10 Javascript
jquery中ajax函数执行顺序问题之如何设置同步
2014/02/28 Javascript
table行随鼠标移动变色示例
2014/05/07 Javascript
JS解析XML文件和XML字符串详解
2015/04/17 Javascript
深入理解JavaScript的React框架的原理
2015/07/02 Javascript
详解JavaScript数组的操作大全
2015/10/19 Javascript
js实现延时加载Flash的方法
2015/11/26 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
2016/03/09 Javascript
ionic实现滑动的三种方式
2016/08/27 Javascript
AngularJS通过$sce输出html的方法
2016/09/22 Javascript
canvas实现图像布局填充功能
2017/02/06 Javascript
Angular2库初探
2017/03/01 Javascript
JS实现十分钟倒计时代码实例
2018/10/18 Javascript
微信小程序自定义tabBar组件开发详解
2020/09/24 Javascript
Layui多选只有最后一个值的解决方法
2019/09/02 Javascript
JavaScript This指向问题详解
2019/11/25 Javascript
JS数组扁平化、去重、排序操作实例详解
2020/02/24 Javascript
Python实现遍历windows所有窗口并输出窗口标题的方法
2015/03/13 Python
Python设计模式之适配器模式原理与用法详解
2019/01/15 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
如何打印出当前源文件的文件名以及源文件的当前行号
2015/04/05 面试题
财务会计毕业生个人求职信
2014/02/03 职场文书
法学函授自我鉴定
2014/02/06 职场文书
党组织公开承诺书
2014/03/29 职场文书
协会周年庆活动方案
2014/08/26 职场文书
金砖之国观后感
2015/06/11 职场文书
大学生暑假实习总结
2015/07/13 职场文书
吉利入股戴姆勒后smart“长大了”
2022/04/21 数码科技