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 相关文章推荐
js控制的遮罩层实例介绍
May 29 Javascript
细说javascript函数从函数的构成开始
Aug 29 Javascript
原生Javascript封装的一个AJAX函数分享
Oct 11 Javascript
不同js异步函数同步的实现方法
May 28 Javascript
Angularjs实现分页和分页算法的示例代码
Dec 23 Javascript
jQuery居中元素scrollleft计算方法示例
Jan 16 Javascript
npm国内镜像 安装失败的几种解决方案
Jun 04 Javascript
详解.vue文件解析的实现
Jun 11 Javascript
jquery 通过ajax请求获取后台数据显示在表格上的方法
Aug 08 jQuery
koa socket即时通讯的示例代码
Sep 07 Javascript
JavaScript禁用右键单击优缺点分析
Jan 20 Javascript
electron+vue实现div contenteditable截图功能
Jan 07 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
CodeIgniter输出中文乱码的两种解决办法
2014/06/12 PHP
php导入excel文件到mysql数据库的方法
2015/01/14 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
详解Yaf框架PHPUnit集成测试方法
2017/12/27 PHP
PHP cURL获取微信公众号access_token的实例
2018/04/28 PHP
thinkphp5框架实现的自定义扩展类操作示例
2019/05/16 PHP
laravel 输出最后执行sql 附:whereIn的使用方法
2019/10/10 PHP
使用原生javascript创建通用表单验证——更锋利的使用dom对象
2011/09/13 Javascript
使用js操作cookie的一点小收获分享
2013/09/03 Javascript
JS根据年月获得当月天数的实现代码
2014/07/03 Javascript
jquery实现简单的二级导航下拉菜单效果
2015/09/07 Javascript
理解JavaScript表单的基础知识
2016/01/25 Javascript
JS使用正则表达式实现关键字替换加粗功能示例
2016/08/03 Javascript
vue2.0 父组件给子组件传递数据的方法
2018/01/15 Javascript
JavaScript常见事件对象与操作实例总结
2019/01/05 Javascript
解决vue-cli webpack打包开启Gzip 报错问题
2019/07/24 Javascript
VUEX 数据持久化,刷新后重新获取的例子
2019/11/12 Javascript
vue中使用router全局守卫实现页面拦截的示例
2020/10/23 Javascript
推荐下python/ironpython:从入门到精通
2007/10/02 Python
Python解决N阶台阶走法问题的方法分析
2017/12/28 Python
Python实现的径向基(RBF)神经网络示例
2018/02/06 Python
Jupyter安装nbextensions,启动提示没有nbextensions库
2020/04/23 Python
40行Python代码实现天气预报和每日鸡汤推送功能
2020/02/27 Python
HTML5给汉字加拼音收起展开组件的实现代码
2020/04/08 HTML / CSS
医科学校毕业生自荐信
2013/11/09 职场文书
护理专科毕业自荐信范文
2014/04/21 职场文书
2014年人民警察入党思想汇报
2014/10/12 职场文书
工作疏忽检讨书500字
2014/10/26 职场文书
教师工作总结范文2014
2014/11/10 职场文书
在校生证明
2015/06/17 职场文书
植树节新闻稿
2015/07/17 职场文书
初一语文教学反思
2016/03/03 职场文书
导游词之杭州西湖
2019/09/19 职场文书
简单实现一个手持弹幕功能+文字抖动特效
2021/03/31 HTML / CSS
Python matplotlib 利用随机函数生成变化图形
2022/04/26 Python
javascript进阶篇深拷贝实现的四种方式
2022/07/07 Javascript