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 插件 将this下的div轮番显示
Apr 09 Javascript
Javascript 日期处理之时区问题
Oct 08 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
Jan 08 Javascript
JavaScript建立一个语法高亮输入框实现思路
Feb 26 Javascript
使用firebug进行调试javascript的示例
Dec 16 Javascript
JS中自定义定时器让它在某一时刻执行
Sep 02 Javascript
JavaScript字符串常用的方法
Mar 10 Javascript
Jquery技巧(必须掌握)
Mar 16 Javascript
node.js版本管理工具n无效的原理和解决方法
Nov 24 Javascript
使用JS正则表达式 替换括号,尖括号等
Nov 29 Javascript
vue组件之间通信方式实例总结【8种方式】
Feb 22 Javascript
利用d3.js实现蜂巢图表带动画效果
Sep 03 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一些服务器端特性的配置加强php的安全
2006/10/09 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
2018/07/17 PHP
PHP Primary script unknown 解决方法总结
2019/08/22 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
2020/05/02 PHP
JavaScript中的类继承
2010/11/25 Javascript
JS Loading功能的简单实现
2013/11/29 Javascript
21个值得收藏的Javascript技巧
2014/02/04 Javascript
使用javascript做的一个随机点名程序
2014/02/13 Javascript
谈谈Jquery中的children find 的区别有哪些
2015/10/19 Javascript
JavaScript+html5 canvas制作的百花齐放效果完整实例
2016/01/26 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
完美解决jQuery 鼠标快速滑过后,会执行多次滑出的问题
2016/12/08 Javascript
理解javascript中的闭包
2017/01/11 Javascript
JavaScript日期对象(Date)基本用法示例
2017/01/18 Javascript
ZeroClipboard.js使用一个flash复制多个文本框
2017/06/19 Javascript
js删除对象/数组中null、undefined、空对象及空数组方法示例
2018/11/14 Javascript
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
2019/03/19 jQuery
Vuex 模块化使用详解
2019/07/31 Javascript
解决layui表格内文本超出隐藏的问题
2019/09/12 Javascript
es6函数之严格模式用法实例分析
2020/03/17 Javascript
JavaScript Window浏览器对象模型原理解析
2020/05/30 Javascript
[00:29]2019完美世界全国高校联赛(秋季赛)总决赛海口落幕
2019/12/10 DOTA
Python读取环境变量的方法和自定义类分享
2014/11/22 Python
浅谈python中的面向对象和类的基本语法
2016/06/13 Python
pandas将DataFrame的列变成行索引的方法
2018/04/10 Python
Python面向对象之继承和组合用法实例分析
2018/08/27 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
2019/05/18 Python
python实现密码验证合格程序的思路详解
2020/06/01 Python
编写python代码实现简单抽奖器
2020/10/20 Python
Speedo速比涛中国官方网站:全球领先泳装运动品牌
2018/04/24 全球购物
SQL中where和having的区别
2012/06/17 面试题
Internet体系结构
2014/12/21 面试题
《两只鸟蛋》教学反思
2014/02/10 职场文书
小学语文教师研修感悟
2015/11/18 职场文书
python必学知识之文件操作(建议收藏)
2021/05/30 Python
2022年四月新番
2022/03/15 日漫