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插件ajaxfileupload.js实现ajax上传文件例子
Jun 26 Javascript
每天一篇javascript学习小结(String对象)
Nov 18 Javascript
详解WordPress开发中get_current_screen()函数的使用
Jan 11 Javascript
javascript实现2016新年版日历
Jan 25 Javascript
基于Layer+jQuery的自定义弹框
May 26 Javascript
有关JS中的0,null,undefined,[],{},'''''''',false之间的关系
Feb 14 Javascript
JS 组件系列之BootstrapTable的treegrid功能
Jun 16 Javascript
js实现水平滚动菜单导航
Jul 21 Javascript
JavaScript数据结构之双向链表定义与使用方法示例
Oct 27 Javascript
jQuery发请求传输中文参数乱码问题的解决方案
May 22 jQuery
vue.js提交按钮时进行简单的if判断表达式详解
Aug 08 Javascript
基于vue和websocket的多人在线聊天室
Feb 01 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 Calender(日历)代码分享
2014/01/03 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
2014/04/08 PHP
php提示Warning:mysql_fetch_array() expects的解决方法
2014/12/16 PHP
JavaScrip单线程引擎工作原理分析
2010/09/04 Javascript
jQuery学习笔记之Helloworld
2010/12/22 Javascript
javascript学习笔记(七)利用javascript来创建和存储cookie
2011/04/08 Javascript
Microsfot .NET Framework4.0框架 安装失败的解决方法
2013/08/14 Javascript
JavaScript中的eval()函数详解
2013/08/22 Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
2013/11/14 Javascript
基于jQuery的判断iPad、iPhone、Android是横屏还是竖屏的代码
2014/05/11 Javascript
AngularJS基础 ng-dblclick 指令用法
2016/08/01 Javascript
jquery实现(textarea)placeholder自动换行
2016/12/22 Javascript
JavaScript实现水平进度条拖拽效果
2017/01/18 Javascript
从零学习node.js之模块规范(一)
2017/02/21 Javascript
作为老司机使用 React 总结的 11 个经验教训
2017/04/08 Javascript
Vue实现动态创建和删除数据的方法
2018/03/17 Javascript
AngularJS 监听变量变化的实现方法
2018/10/09 Javascript
微信小程序跳转到其他网页(外部链接)的实现方法
2019/09/20 Javascript
浅谈Vue.js之初始化el以及数据的绑定说明
2019/11/14 Javascript
vue学习之Vue-Router用法实例分析
2020/01/06 Javascript
javascript绘制简单钟表效果
2020/04/07 Javascript
vue2和vue3的v-if与v-for优先级对比学习
2020/10/10 Javascript
Vue 数据绑定的原理分析
2020/11/16 Javascript
Python入门学习指南分享
2018/04/11 Python
利用python将图片版PDF转文字版PDF
2019/05/03 Python
python flask框架实现重定向功能示例
2019/07/02 Python
django 类视图的使用方法详解
2019/07/24 Python
python实现tail实时查看服务器日志示例
2019/12/24 Python
np.random.seed() 的使用详解
2020/01/14 Python
惊艳的手工时装首饰:Migonne Gavigan
2018/02/23 全球购物
联想西班牙官网:Lenovo西班牙
2018/08/28 全球购物
Conforama瑞士:家具、厨房、电器、装饰
2020/09/06 全球购物
校企合作协议书
2014/04/16 职场文书
学校教研活动总结
2014/07/02 职场文书
疾病证明书
2015/06/19 职场文书
python flask开发的简单基金查询工具
2021/06/02 Python