当前位置: 首页 > 图文教程 > 网络编程 > Javascript > Javascript条件判断语句的小技巧

Javascript
Javascript开发包大全整理
获取Javscript执行函数名称的方法
间隔滚动效果-兼容IE和FireFox
使用Modello编写JavaScript类
一个最简单的级联下拉菜单
用Javascript实现UTF8编码转换成gb2312编码
添加到收藏夹的Javascript脚本 for ie,firefox
一些常用的Javascript函数
颜色选择: ColorMatch 5K
Javascript实现的分页函数
在IE下:float属性会影响offsetTop的取值
用javascript获取地址栏参数
人民币数字转换成大写形式
改进:论坛UBB代码自动插入方式
获取table中的rowIndex和cellIndex
JavaScript事件列表解说
取得input元素中部分选中(selected)的值
破解md5加密扫描程序(适合扫描弱密码)[
JavaScript中Array 对象相关的几个方法
Javascript直接定义对象实例[

Javascript条件判断语句的小技巧


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 258 ::
收藏到网摘: n/a

原文:http://www.gracecode.com/Archive/Display/2086

我们已经知道,null 没有任何的属性值,并且无法获取其实体(existence)值。所以 null.property 返回的是错误(error)而不是 undefined 。

考虑下面的代码

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)

显得更加的精简,并且相比上述的代码更容易理解。