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 相关文章推荐
让广告代码不再影响你的网页加载速度
Jul 07 Javascript
javascript实现仿银行密码输入框效果的代码
Dec 13 Javascript
jquery.combobox中文api和例子,修复了上面的小bug
Mar 28 Javascript
jQuery 源码分析笔记(5) jQuery.support
Jun 19 Javascript
javascript向flash swf文件传递参数值注意细节
Dec 11 Javascript
js获取url参数代码实例分享(JS操作URL)
Dec 13 Javascript
浅谈js基本数据类型和typeof
Aug 09 Javascript
JS实现侧边栏鼠标经过弹出框+缓冲效果
Mar 29 Javascript
JS库之Three.js 简易入门教程(详解之一)
Sep 13 Javascript
WebPack配置vue多页面的技巧
May 15 Javascript
jQuery中实现text()的方法
Apr 04 jQuery
JQuery绑定事件四种实现方法解析
Dec 02 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
PHP+memcache实现消息队列案例分享
2014/05/21 PHP
PHP伪静态Rewrite设置之APACHE篇
2014/07/30 PHP
PHP依赖倒置(Dependency Injection)代码实例
2014/10/11 PHP
PHP积分兑换接口实例
2015/02/09 PHP
简单的php购物车代码
2020/06/05 PHP
javascript基于jQuery的表格悬停变色/恢复,表格点击变色/恢复,点击行选Checkbox
2008/08/05 Javascript
JQuery 动态扩展对象之另类视角
2010/05/25 Javascript
jQuery旋转插件—rotate支持(ie/Firefox/SafariOpera/Chrome)
2013/01/16 Javascript
jquery中获取id值方法小结
2013/09/22 Javascript
javascript实现移动端上的触屏拖拽功能
2016/03/04 Javascript
JQueryEasyUI框架下的combobox的取值和绑定的方法
2017/01/22 Javascript
jQuery开源组件BootstrapValidator使用详解
2017/06/29 jQuery
微信小程序引用公共js里的方法的实例详解
2017/08/17 Javascript
JavaScript基础心法 数据类型
2018/03/05 Javascript
vue+elementUI实现简单日历功能
2020/09/24 Javascript
python多线程编程方式分析示例详解
2013/12/06 Python
用Python解决计数原理问题的方法
2016/08/04 Python
使用EduBlock轻松学习Python编程
2018/10/08 Python
java判断三位数的实例讲解
2019/06/10 Python
python mysql断开重连的实现方法
2019/07/26 Python
python修改字典键(key)的方法
2019/08/05 Python
Python文本文件的合并操作方法代码实例
2020/03/31 Python
VSCode配合pipenv搞定虚拟环境的实现方法
2020/05/17 Python
在CentOS7下安装Python3教程解析
2020/07/09 Python
matplotlib更改窗口图标的方法示例
2021/02/03 Python
解决Pycharm 运行后没有输出的问题
2021/02/05 Python
Python3.9.1中使用match方法详解
2021/02/08 Python
美国最受欢迎的度假租赁网站:VRBO
2016/08/02 全球购物
北卡罗来纳州豪华家具和家居装饰店:Carolina Rustica
2018/10/30 全球购物
全球领先的在线cosplay服装商店:RoleCosplay
2020/01/18 全球购物
小学生新学期寄语
2014/01/19 职场文书
公司委托书范本
2014/04/04 职场文书
大学感恩节活动总结
2015/05/05 职场文书
nginx location中多个if里面proxy_pass的方法
2021/03/31 Servers
Java并发编程之Executor接口的使用
2021/06/21 Java/Android
vue实力踩坑之push当前页无效
2022/04/10 Vue.js