javascript「篱式」条件判断

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

考虑下面的代码

if (node.nextSibling.className == ...) {
   ...
}

 

在 node 或者 node.nextSibling 为空(null)的情况下,会返回错误(error)。所以,通常情况下的解决方案的代码为

1
2
3
if  ((node) && (next = node.nextSibling) && ... ) {
    ...
}

  

那么,当条件判断一多的情况下,代码会形成下面的情况

1
2
3
4
5
6
7
if  (
(node) &&
(node.nextSibling) &&
(node.nextSibling.className == ...)
... ) {
    ...
}

  

随着判断条件的不断的增加,代码会变得非常的「丑陋」。

有个小的「伎俩」,可以简化条件判断表达式。我们可以增加个空对象({})或者零(0)作为替代

1
2
3
if  ( next = (node || 0).nextSibling) ) {
    ...
}

  

那么,上述的代码就可以这样写

1
2
3
if  (((node || 0).nextSibling || 0).className == ...) {
    ...
}

  就个人而言,上述的从某种角度而言,代码会非常的精简。但日常实际的编码过程中,尤其是多人配合的情况下,这些代码可能会给其他开发人员造成一定的困扰。

 

文章转自:http://www.cnblogs.com/feng524822/p/3460392.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值