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中最常用的继承模式 组合继承
Aug 12 Javascript
jquery Mobile入门—外部链接切换示例代码
Jan 08 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
Sep 25 Javascript
node中socket.io的事件使用详解
Dec 15 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
Mar 25 Javascript
基于jquery实现最简单的选项卡切换效果
May 08 Javascript
利用Vue.js指令实现全选功能
Sep 08 Javascript
js学习总结_基于数据类型检测的四种方式(必看)
Jul 04 Javascript
史上最全JavaScript常用的简写技巧(推荐)
Aug 17 Javascript
requireJS模块化实现返回顶部功能的方法详解
Oct 16 Javascript
ESLint 是如何检查 .vue 文件的
Nov 30 Vue.js
一定要知道的 25 个 Vue 技巧
Nov 02 Vue.js
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
PHP中使用CURL伪造来路抓取页面或文件
2011/05/04 PHP
使用php将某个目录下面的所有文件罗列出来的方法详解
2013/06/21 PHP
PHP 7.0.2 正式版发布
2016/01/08 PHP
Yii核心验证器api详解
2016/11/23 PHP
PHP写的简单数字验证码实例
2017/05/23 PHP
浅谈PHP中new self()和new static()的区别
2017/08/11 PHP
用js实现控制内容的向上向下滚动效果
2007/06/26 Javascript
javascript 有用的脚本函数
2009/05/07 Javascript
jquery 操作DOM案例代码分享
2012/04/05 Javascript
Javascript在IE和FireFox中的不同表现简析
2012/12/03 Javascript
jsp js鼠标移动到指定区域显示选项卡离开时隐藏示例
2013/06/14 Javascript
js操作IE浏览器弹出浏览文件夹可以返回目录路径
2014/07/14 Javascript
javascript在IE下trim函数无法使用的解决方法
2014/09/12 Javascript
一些实用性较高的js方法
2016/04/19 Javascript
深入剖析JavaScript中的函数currying柯里化
2016/04/29 Javascript
JavaScript用构造函数如何获取变量的类型名
2016/12/23 Javascript
javascript计算渐变颜色的实例
2017/09/22 Javascript
javaScript手机号码校验工具类PhoneUtils详解
2017/12/08 Javascript
vue 音乐App QQ音乐搜索列表最新接口跨域设置方法
2018/09/25 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
2018/12/03 Javascript
详解使用webpack+electron+reactJs开发windows桌面应用
2019/02/01 Javascript
vue+elementUI实现表格关键字筛选高亮
2020/10/26 Javascript
[01:08:00]Fnatic vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
spark: RDD与DataFrame之间的相互转换方法
2018/06/07 Python
Python线程同步的实现代码
2018/10/03 Python
对python中的高效迭代器函数详解
2018/10/18 Python
Python实现实时数据采集新型冠状病毒数据实例
2020/02/04 Python
Selenium启动Chrome时配置选项详解
2020/03/18 Python
django rest framework serializer返回时间自动格式化方法
2020/03/31 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
2020/05/26 Python
Python实现中英文全文搜索的示例
2020/12/04 Python
Bally澳大利亚官网:瑞士奢侈品牌
2018/11/01 全球购物
村主任群众路线个人对照检查材料
2014/09/26 职场文书
2015年党员承诺书
2015/01/21 职场文书
文明医院的标语集锦!
2019/07/24 职场文书
Go缓冲channel和非缓冲channel的区别说明
2021/04/25 Golang