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 相关文章推荐
NiftyCube——轻松实现圆角边框
Feb 20 Javascript
为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能
Nov 24 Javascript
jQuery实现自动调整字体大小的方法
Jun 15 Javascript
jquery实现鼠标滑过小图查看大图的方法
Jul 20 Javascript
超链接怎么正确调用javascript函数
May 23 Javascript
Bootstrap中的Panel和Table全面解析
Jun 13 Javascript
AngularJS 指令的交互详解及实例代码
Sep 14 Javascript
javascript读取文本节点方法小结
Dec 15 Javascript
jquery中用函数来设置css样式
Dec 22 Javascript
JS/jquery实现一个网页内同时调用多个倒计时的方法
Apr 27 jQuery
JS数组实现分类统计实例代码
Sep 30 Javascript
微信小程序表单验证插件WxValidate的二次封装功能(终极版)
Sep 03 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
一些花式咖啡的配方
2021/03/03 冲泡冲煮
php is_file 判断给定文件名是否为一个正常的文件
2010/05/10 PHP
php输入流php://input使用示例(php发送图片流到服务器)
2013/12/25 PHP
PHP根据两点间的经纬度计算距离
2014/10/31 PHP
php判断并删除空目录及空子目录的方法
2015/02/11 PHP
PHP的mysqli_sqlstate()函数讲解
2019/01/23 PHP
javascript数组组合成字符串的脚本
2021/01/06 Javascript
jquery如何根据值设置默认的选中项
2014/03/17 Javascript
jQuery操作select下拉框的text值和value值的方法
2014/05/31 Javascript
深入理解JavaScript编程中的原型概念
2015/06/25 Javascript
JS基于VML技术实现的五角星礼花效果代码
2015/10/26 Javascript
jQuery easyui的validatebox校验规则扩展及easyui校验框validatebox用法
2016/01/18 Javascript
基于jQuery实现咖啡订单管理简单应用
2017/02/10 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
2017/05/03 Javascript
在React 组件中使用Echarts的示例代码
2017/11/08 Javascript
详解VUE 数组更新
2017/12/16 Javascript
Node实战之不同环境下配置文件使用教程
2018/01/02 Javascript
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
2018/10/12 Javascript
layui 对弹窗 form表单赋值的实现方法
2019/09/04 Javascript
Vue.js实现立体计算器
2020/02/22 Javascript
js+canvas实现五子棋小游戏
2020/08/02 Javascript
python 内置函数filter
2017/06/01 Python
python保存数据到本地文件的方法
2018/06/23 Python
Python HTTP下载文件并显示下载进度条功能的实现
2020/04/02 Python
Python基于Tkinter编写crc校验工具
2020/05/06 Python
使用keras和tensorflow保存为可部署的pb格式
2020/05/25 Python
Python基于wordcloud及jieba实现中国地图词云图
2020/06/09 Python
python实现批量命名照片
2020/06/18 Python
关于PySnooper 永远不要使用print进行调试的问题
2021/03/04 Python
CSS3.0实现霓虹灯按钮动画特效的示例代码
2021/01/12 HTML / CSS
女娲补天教学反思
2014/02/05 职场文书
奥巴马竞选演讲稿
2014/05/15 职场文书
党员年终个人总结
2015/02/14 职场文书
2015年度优秀员工推荐信
2015/03/23 职场文书
Win11怎样将锁屏账户头像图片改成动画视频
2021/11/21 数码科技
解决flex布局中子项目尺寸不受flex-shrink限制
2022/05/11 HTML / CSS