Javascript条件判断使用小技巧总结


Posted in Javascript onSeptember 08, 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面向对象设计二 构造函数模式
Dec 20 Javascript
体验jQuery和AngularJS的不同点及AngularJS的迷人之处
Feb 02 Javascript
Bootstrap企业网站实战项目4
Oct 14 Javascript
微信页面弹出键盘后iframe内容变空白的解决方案
Sep 20 Javascript
微信小程序url与token设置详解
Sep 26 Javascript
Angular5升级RxJS到5.5.3报错:EmptyError: no elements in sequence的解决方法
Apr 09 Javascript
详解vue 项目白屏解决方案
Oct 31 Javascript
jQuery实现文本显示一段时间后隐藏的方法分析
Jun 20 jQuery
使用pkg打包ThinkJS项目的方法步骤
Dec 30 Javascript
vue2.x数组劫持原理的实现
Apr 19 Javascript
详解微信小程序工程化探索之webpack实战
Apr 20 Javascript
vue 判断元素内容是否超过宽度的方式
Jul 29 Javascript
SyntaxHighlighter代码加色使用方法
Sep 07 #Javascript
很多人都是用下面的js刷新站IP和PV
Sep 05 #Javascript
动态修改DOM 里面的 id 属性的弊端分析
Sep 03 #Javascript
IE浏览器PNG图片透明效果代码
Sep 02 #Javascript
JavaScript监测ActiveX控件是否已经安装过的代码
Sep 02 #Javascript
JQUERY CHECKBOX全选,取消全选,反选方法三
Aug 30 #Javascript
jquery复选框CHECKBOX全选、反选
Aug 30 #Javascript
You might like
wordpress之wp-settings.php
2007/08/17 PHP
PHP网站建设的流程与步骤分享
2015/09/25 PHP
laravel学习教程之关联模型
2016/07/30 PHP
EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本
2017/04/04 PHP
thinkphp诸多限制条件下如何getshell详解
2020/12/09 PHP
Area 区域实现post提交数据的js写法
2014/04/22 Javascript
JavaScript DOM 对象深入了解
2016/07/20 Javascript
jQuery给表格添加分页效果
2017/03/02 Javascript
理解javascript async的用法
2017/08/22 Javascript
JS实现电商放大镜效果
2017/08/24 Javascript
node.js 用socket实现聊天的示例代码
2017/10/17 Javascript
js数组常用最重要的方法
2018/02/04 Javascript
jQuery中复合选择器简单用法示例
2018/03/31 jQuery
Python文件读取的3种方法及路径转义
2015/06/21 Python
使用tensorflow实现AlexNet
2017/11/20 Python
python中in在list和dict中查找效率的对比分析
2018/05/04 Python
python爬虫自动创建文件夹的功能
2018/08/01 Python
python数据处理之如何选取csv文件中某几行的数据
2019/09/02 Python
关于Pytorch的MLP模块实现方式
2020/01/07 Python
Python对Tornado请求与响应的数据处理
2020/02/12 Python
HTML5新增的标签和属性归纳总结
2018/05/02 HTML / CSS
汽车销售求职自荐信
2013/10/01 职场文书
副总经理工作职责
2013/11/28 职场文书
安全生产检查通报
2014/01/29 职场文书
争论的故事教学反思
2014/02/06 职场文书
小学教师寄语大全
2014/04/03 职场文书
产品质量保证书
2014/04/29 职场文书
公司口号大全
2014/06/11 职场文书
党员教师自我剖析材料
2014/09/29 职场文书
高一军训决心书
2015/02/05 职场文书
2015感人爱情寄语
2015/02/26 职场文书
报案材料怎么写
2015/05/25 职场文书
2016党性教育学习心得体会
2016/01/21 职场文书
Go语言基础map用法及示例详解
2021/11/17 Golang
Android实现图片九宫格
2022/06/28 Java/Android