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 另一种图片滚动切换效果思路
Apr 20 Javascript
JavaScript中创建字典对象(dictionary)实例
Mar 31 Javascript
javascript轻量级库createjs使用Easel实现拖拽效果
Feb 19 Javascript
全面介绍javascript实用技巧及单竖杠
Jul 18 Javascript
详解JavaScript中this的指向问题
Jan 20 Javascript
js图片放大镜实例讲解(必看篇)
Jul 17 Javascript
Vue多种方法实现表头和首列固定的示例代码
Feb 02 Javascript
react.js组件实现拖拽复制和可排序的示例代码
Aug 20 Javascript
JavaScript检查数据中是否存在相同的元素(两种方法)
Oct 07 Javascript
Jquery和CSS实现选择框重置按钮功能
Nov 08 jQuery
Vue+iview+webpack ie浏览器兼容简单处理
Sep 20 Javascript
Jquery高级应用Deferred对象原理及使用实例
May 28 jQuery
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
桌面中心(一)创建数据库
2006/10/09 PHP
针对初学PHP者的疑难问答(2)
2006/10/09 PHP
PHP 图片上传代码
2011/09/13 PHP
PHP多进程编程实例
2014/10/15 PHP
jquery实现简单的拖拽效果实例兼容所有主流浏览器
2013/06/21 Javascript
Javascript中匿名函数的多种调用方式总结
2013/12/06 Javascript
new Date()问题在ie8下面的处理方法
2014/07/31 Javascript
网页禁用右键菜单和鼠标拖动选择方法小结
2015/02/25 Javascript
jQuery通过扩展实现抖动效果的方法
2015/03/11 Javascript
TypeScript具有的几个不同特质
2015/04/07 Javascript
超级给力的JavaScript的React框架入门教程
2015/07/02 Javascript
JS模拟键盘打字效果的方法
2015/08/05 Javascript
Vuejs第六篇之Vuejs与form元素实例解析
2016/09/05 Javascript
vue模板语法-插值详解
2017/03/06 Javascript
彻底解决 webpack 打包文件体积过大问题
2017/07/07 Javascript
react路由配置方式详解
2017/08/07 Javascript
vue 2.0项目中如何引入element-ui详解
2017/09/06 Javascript
Vue 监听列表item渲染事件方法
2018/09/06 Javascript
Vue实现微信支付功能遇到的坑
2019/06/05 Javascript
Vue编程式跳转的实例代码详解
2019/07/10 Javascript
[15:57]教你分分钟做大人:斧王
2014/10/30 DOTA
使用Python的Django和layim实现即时通讯的方法
2018/05/25 Python
python 实现批量xls文件转csv文件的方法
2018/10/23 Python
python中的列表与元组的使用
2019/08/08 Python
python字符串的index和find的区别详解
2020/06/20 Python
美国领先的家居装饰和礼品商店:Kirkland’s
2017/01/30 全球购物
送货司机岗位职责
2013/12/11 职场文书
大学毕业后的十年规划
2014/01/07 职场文书
酒店管理求职信范文
2014/04/06 职场文书
倡议书格式范文
2014/04/14 职场文书
2014年教师党员公开承诺书
2014/05/28 职场文书
食品科学与工程专业毕业生求职信范文
2014/07/21 职场文书
家长学校教学计划
2015/01/19 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书
Python基础之Socket通信原理
2021/04/22 Python
Golang日志包的使用
2022/04/20 Golang