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下利用fso判断文件是否存在的代码
Dec 11 Javascript
探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行
Jul 09 Javascript
js图片延迟技术一般的思路与示例
Mar 20 Javascript
javascript刷新父页面的各种方法汇总
Sep 03 Javascript
jQuery中scrollLeft()方法用法实例
Jan 16 Javascript
jQuery 3.0 的变化及使用方法
Feb 01 Javascript
探索angularjs+requirejs全面实现按需加载的套路
Feb 26 Javascript
JQuery组件基于Bootstrap的DropDownList(完整版)
Jul 05 Javascript
vue.js利用Object.defineProperty实现双向绑定
Mar 09 Javascript
jQuery手风琴的简单制作
May 12 jQuery
vue-cli如何添加less 以及sass
Jul 06 Javascript
JS装饰器函数用法总结
Apr 21 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使用curl获取https请求的方法
2015/02/11 PHP
利用PHP生成CSV文件简单示例
2016/12/21 PHP
PHP输出多个元素的排列或组合的方法
2017/03/14 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
javascript 面向对象 function类
2010/05/13 Javascript
JS中数组Array的用法示例介绍
2014/02/20 Javascript
javascript中的正则表达式使用详解
2015/08/30 Javascript
jQuery模仿单选按钮选中效果
2016/06/24 Javascript
JavaScript提高网站性能优化的建议(二)
2016/07/24 Javascript
深入学习 JavaScript中的函数调用
2017/03/23 Javascript
vue-quill-editor+plupload富文本编辑器实例详解
2018/10/19 Javascript
puppeteer实现html截图的示例代码
2019/01/10 Javascript
Node.js学习教程之Module模块
2019/09/03 Javascript
vue 动态表单开发方法案例详解
2019/12/02 Javascript
vue项目中极验验证的使用代码示例
2019/12/03 Javascript
python基于paramiko将文件上传到服务器代码实现
2019/07/08 Python
np.newaxis 实现为 numpy.ndarray(多维数组)增加一个轴
2019/11/30 Python
python 利用zmail库发送邮件
2020/09/11 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
2020/11/10 Python
结合CSS3的布局新特征谈谈常见布局方法
2016/01/22 HTML / CSS
将HTML5 Canvas的内容保存为图片借助toDataURL实现
2013/05/20 HTML / CSS
美国男士内衣品牌:Tommy John
2017/12/22 全球购物
在什么时候需要使用"常引用"
2015/12/31 面试题
自我评价中英文语句
2013/11/30 职场文书
优秀演讲稿范文
2013/12/29 职场文书
小学生打架检讨书
2014/01/26 职场文书
《邮票齿孔的故事》教学反思
2014/02/22 职场文书
洗发水广告词
2014/03/13 职场文书
幼儿园老师寄语
2014/04/03 职场文书
关于教师节的广播稿
2014/09/10 职场文书
物业保安辞职信
2015/05/12 职场文书
2016年大学迎新工作总结
2015/10/14 职场文书
幼儿教师继续教育培训心得体会
2016/01/19 职场文书
Apache Calcite 实现方言转换的代码
2021/04/24 Servers
关于html选择框创建占位符的问题
2021/06/09 HTML / CSS