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 IE 浏览器判定代码
Mar 21 Javascript
js输出列表实现代码
Sep 12 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
Jan 08 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
Jan 07 Javascript
javascript中bind函数的作用实例介绍
Sep 28 Javascript
简单实现jQuery进度条轮播实例代码
Jun 20 Javascript
使用JQuery选择HTML遍历函数的方法
Sep 17 Javascript
js设置和获取自定义属性的方法
Oct 20 Javascript
微信小程序 合法域名校验出错详解及解决办法
Mar 09 Javascript
微信小程序倒计时功能实现代码
Nov 09 Javascript
JavaScript面试出现频繁的一些易错点整理
Mar 29 Javascript
vue实现几秒后跳转新页面代码
Sep 09 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
让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X
2006/12/06 PHP
php仿discuz分页效果代码
2008/10/02 PHP
利用PHP扩展vld查看PHP opcode操作步骤
2013/03/04 PHP
PHP从二维数组得到N层分类树的实现代码
2016/10/11 PHP
php版阿里大于(阿里大鱼)短信发送实例详解
2016/11/30 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
2020/01/23 PHP
js TextArea的选中区域处理
2010/12/28 Javascript
深入剖析JavaScript中的函数currying柯里化
2016/04/29 Javascript
JavaScript排序算法动画演示效果的实现方法
2016/10/18 Javascript
JavaScript中的高级函数
2018/01/04 Javascript
详解ES6系列之私有变量的实现
2018/11/21 Javascript
微信小程序实现联动选择器
2019/02/15 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
2019/05/27 Javascript
vue实现计步器功能
2019/11/01 Javascript
js实现简单商品筛选功能
2021/02/02 Javascript
[02:09]DOTA2辉夜杯 EHOME夺冠举杯现场
2015/12/28 DOTA
Python删除空文件和空文件夹的方法
2015/07/14 Python
离线安装Pyecharts的步骤以及依赖包流程
2020/04/23 Python
Python利用Beautiful Soup模块修改内容方法示例
2017/03/27 Python
pandas 对每一列数据进行标准化的方法
2018/06/09 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
2020/03/19 Python
windows10环境下用anaconda和VScode配置的图文教程
2020/03/30 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
python实现将中文日期转换为数字日期
2020/07/14 Python
HTML5本地存储和本地数据库实例详解
2017/09/05 HTML / CSS
Asics日本官网:鬼冢八喜郎创立的跑鞋运动品牌
2017/10/18 全球购物
Charles & Colvard官网:美国莫桑石品牌
2019/06/05 全球购物
儿科护理实习自我鉴定
2013/09/19 职场文书
幼儿园毕业典礼主持词
2014/03/21 职场文书
英语教师个人总结
2015/02/09 职场文书
会议营销主持词
2015/07/03 职场文书
涨工资申请书应该怎么写?
2019/07/08 职场文书
《时代广场的蟋蟀》读后感:真挚友情,温暖世界!
2020/01/08 职场文书
python 模拟在天空中放风筝的示例代码
2021/04/21 Python
Python内置的数据类型及使用方法
2022/04/13 Python
Golang 结构体数据集合
2022/04/22 Golang