快捷搜索:

Javascript 篱式条件判断

我们已经知道,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)

显得加倍的精简,并且比拟上述的代码更轻易理解。

您可能还会对下面的文章感兴趣: