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 相关文章推荐
encode脚本和normal脚本混用的问题与解决方法
Mar 08 Javascript
JQuery 操作Javascript对象和数组的工具函数小结
Jan 22 Javascript
js实现动态改变字体大小代码
Jan 02 Javascript
js的hasownproperty使用示例
Mar 02 Javascript
jQuery实现contains方法不区分大小写的方法
Feb 13 Javascript
AngularJS入门教程之过滤器详解
Aug 19 Javascript
jquery仿微信聊天界面
May 06 jQuery
工作中常用到的ES6语法
Sep 04 Javascript
vue插件mescroll.js实现移动端上拉加载和下拉刷新
Mar 07 Javascript
优化Vue项目编译文件大小的方法步骤
May 27 Javascript
ES6 Promise对象的含义和基本用法分析
Jun 14 Javascript
详解如何解决使用JSON.stringify时遇到的循环引用问题
Mar 23 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
PHP数据库操作面向对象的优点
2006/10/09 PHP
浏览器预览PHP文件时顶部出现空白影响布局分析原因及解决办法
2013/01/11 PHP
PHP中::、->、self、$this几种操作符的区别介绍
2013/04/24 PHP
php模式设计之观察者模式应用实例分析
2019/09/25 PHP
将HTML自动转为JS代码
2006/06/26 Javascript
JavaScript与函数式编程解释
2007/04/27 Javascript
ASP中进行HTML数据及JS数据编码函数
2009/11/11 Javascript
jQuery 打造动态下滑菜单实现说明
2010/04/15 Javascript
JS文本框不能输入空格验证方法
2013/03/19 Javascript
Javascript加载速度慢的解决方案
2014/03/11 Javascript
jQuery实现复选框成对选择及对应取消的方法
2015/03/03 Javascript
干货!教大家如何选择Vue和React
2017/03/13 Javascript
xmlplus组件设计系列之路由(ViewStack)(7)
2017/05/02 Javascript
JavaScript Canvas实现验证码
2020/08/02 Javascript
layer弹窗在键盘按回车将反复刷新的实现方法
2019/09/25 Javascript
原生js生成图片验证码
2020/10/11 Javascript
Vue实现简单购物车功能
2020/12/13 Vue.js
Vue实现手机号、验证码登录(60s禁用倒计时)
2020/12/19 Vue.js
python3.6.3安装图文教程 TensorFlow安装配置方法
2020/06/24 Python
python判断文件夹内是否存在指定后缀文件的实例
2019/06/10 Python
对django中foreignkey的简单使用详解
2019/07/28 Python
Python学习笔记之集合的概念和简单使用示例
2019/08/22 Python
django API 中接口的互相调用实例
2020/04/01 Python
keras的siamese(孪生网络)实现案例
2020/06/12 Python
荷兰超市:DEEN
2018/03/14 全球购物
美国折衷生活方式品牌:Robert Graham
2018/07/13 全球购物
Optimalprint加拿大:在线打印服务
2020/04/03 全球购物
财务工作个人求职的自我评价
2013/12/19 职场文书
给护士表扬信
2014/01/19 职场文书
我的兄弟姐妹观后感
2015/06/15 职场文书
2016年春节问候语
2015/11/11 职场文书
简历自我评价:教师师德表现自我评价
2019/04/24 职场文书
神州牡丹园的导游词
2019/11/20 职场文书
django如何自定义manage.py管理命令
2021/04/27 Python
Spring Boot 排除某个类加载注入IOC的操作
2021/08/02 Java/Android
JavaScript实现优先级队列
2021/12/06 Javascript