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入门教程(11) js事件处理
Jan 31 Javascript
关于JS中的闭包浅谈
Aug 23 Javascript
浅析JavaScript原型继承的陷阱
Dec 03 Javascript
js显示文本框提示文字的方法
May 07 Javascript
基于jQuery实现音乐播放试听列表
Apr 14 Javascript
JS hashMap实例详解
May 26 Javascript
微信小程序 绘图之饼图实现
Oct 24 Javascript
js自定义瀑布流布局插件
May 16 Javascript
JQuery.dataTables表格插件添加跳转到指定页
Jun 09 jQuery
vue elementUI table表格数据 滚动懒加载的实现方法
Apr 04 Javascript
如何使用proxy实现一个简单完整的MVVM库的示例代码
Sep 17 Javascript
JS中循环遍历数组的四种方式总结
Jan 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
php设计模式 Command(命令模式)
2011/06/26 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
php+xml实现在线英文词典查询的方法
2015/01/23 PHP
PHP rmdir()函数的用法总结
2019/07/02 PHP
TFDN图片播放器 不错自动播放
2006/10/03 Javascript
使用onbeforeunload属性后的副作用
2007/03/08 Javascript
自动生成文章摘要的代码[JavaScript 版本]
2007/03/20 Javascript
javascript下有关dom以及xml节点访问兼容问题
2007/11/26 Javascript
点击文章内容处弹出页面代码
2009/10/01 Javascript
JavaScript 语法集锦 脚本之家基础推荐
2009/11/15 Javascript
asp.net+jquery滚动滚动条加载数据的下拉控件
2010/06/25 Javascript
jQuery实现可拖动的浮动层完整代码
2013/05/27 Javascript
JavaScript初学者建议:不要去管浏览器兼容
2014/02/04 Javascript
javascript学习笔记之函数定义
2015/06/25 Javascript
javascript最基本的函数汇总
2015/06/25 Javascript
实用jquery操作表单元素的简单代码
2016/07/04 Javascript
Vue非父子组件通信详解
2017/06/12 Javascript
使用百度地图实现地图网格的示例
2018/02/06 Javascript
JavaScript中字符串的常用操作方法及特殊字符
2018/03/18 Javascript
使用C语言来扩展Python程序和Zope服务器的教程
2015/04/14 Python
简析Python的闭包和装饰器
2016/02/26 Python
python selenium 获取标签的属性值、内容、状态方法
2018/06/22 Python
numpy的文件存储.npy .npz 文件详解
2018/07/09 Python
python截取两个单词之间的内容方法
2018/12/25 Python
Python理解递归的方法总结
2019/01/28 Python
Python和Go语言的区别总结
2019/02/20 Python
从列表或字典创建Pandas的DataFrame对象的方法
2019/07/06 Python
python如何把字符串类型list转换成list
2020/02/18 Python
python实现逆滤波与维纳滤波示例
2020/02/26 Python
Python 合并拼接字符串的方法
2020/07/28 Python
python中的django是做什么的
2020/07/31 Python
Python调用Redis的示例代码
2020/11/24 Python
在职人员跳槽求职信
2015/03/20 职场文书
英语导游欢迎词
2015/09/30 职场文书
导游词之云南丽江-泸沽湖
2019/09/26 职场文书
Python+uiautomator2实现自动刷抖音视频功能
2021/04/29 Python