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 相关文章推荐
基于jquery的超简单上下翻
Apr 20 Javascript
js类式继承的具体实现方法
Dec 31 Javascript
jQuery事件绑定和委托实例
Nov 25 Javascript
使用coffeescript编写node.js项目的方法汇总
Aug 05 Javascript
jQuery简单验证上传文件大小及类型的方法
Jun 02 Javascript
Vue.js实战之Vuex的入门教程
Apr 01 Javascript
jQuery修改DOM结构_动力节点Java学院整理
Jul 05 jQuery
Vue仿支付宝支付功能
May 25 Javascript
vue项目环境变量配置的实现方法
Oct 12 Javascript
利用原生JS实现data方法示例代码
May 28 Javascript
解决vue单页面应用打包后相对路径、绝对路径相关问题
Aug 14 Javascript
基于jQuery拖拽事件的封装
Nov 29 jQuery
解决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
解析curl提交GET,POST,Cookie的简单方法
2013/06/29 PHP
php基于mcrypt的加密解密实例
2014/10/27 PHP
PHP curl模拟登录带验证码的网站
2015/11/30 PHP
深入讲解PHP的Yii框架中的属性(Property)
2016/03/18 PHP
PHP中list方法用法示例
2016/12/01 PHP
PHP程序守护进程化实现方法详解
2020/07/16 PHP
TNC vs BOOM BO3 第二场2.13
2021/03/10 DOTA
js操作二级联动实现代码
2010/07/27 Javascript
JS+flash实现chrome和ie浏览器下同时可以复制粘贴
2013/09/22 Javascript
javascript学习笔记(二)数组和对象部分
2014/09/30 Javascript
在JavaScript中操作时间之getMonth()方法的使用
2015/06/10 Javascript
javascript比较两个日期相差天数的方法
2015/07/24 Javascript
javascript表单验证大全
2015/08/12 Javascript
jQuery实现的仿百度分页足迹效果代码
2015/10/30 Javascript
jQuery遮罩层效果实例分析
2016/01/14 Javascript
Javascript闭包与函数柯里化浅析
2016/06/22 Javascript
jQuery购物网页经典制作案例
2016/08/19 Javascript
jQuery删除当前节点元素
2016/12/07 Javascript
bootstrap-table组合表头的实现方法
2017/09/07 Javascript
JavaScript实现的原生态Tab标签页功能【兼容IE6】
2017/09/18 Javascript
微信小程序 动画的简单实例
2017/10/12 Javascript
JavaScript 2018 中即将迎来的新功能
2018/09/21 Javascript
jQuery-Citys省市区三级菜单联动插件使用详解
2019/07/26 jQuery
vue3.0实现点击切换验证码(组件)及校验
2020/11/18 Vue.js
python通过scapy获取局域网所有主机mac地址示例
2014/05/04 Python
python实现数值积分的Simpson方法实例分析
2015/06/05 Python
Django Highcharts制作图表
2016/08/27 Python
关于python2 csv写入空白行的问题
2018/06/22 Python
python爬虫爬取幽默笑话网站
2019/10/24 Python
Python while循环使用else语句代码实例
2020/02/07 Python
Html5画布_动力节点Java学院整理
2017/07/13 HTML / CSS
为什么说Ruby是一种真正的面向对象程序设计语言
2012/10/30 面试题
会计自荐书
2013/12/02 职场文书
2014审计局领导班子民主生活会对照检查材料思想汇报
2014/09/20 职场文书
2016年端午节寄语
2015/12/04 职场文书
基于redis+lua进行限流的方法
2022/07/23 Redis