Javascript"篱式"条件判断(翻译)

作者:grace 来源:gracecode.com 时间:2008-08-01 12:21:00 

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

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

标签:判断,javascript,翻译
0
投稿

猜你喜欢

  • python多线程http下载实现示例

    2023-12-03 00:15:34
  • python中os操作文件及文件路径实例汇总

    2023-03-20 23:54:09
  • python语言是免费还是收费的?

    2021-12-30 10:04:48
  • 标准的、语义的、Unobtrusive的页签tab切换

    2007-11-03 13:58:00
  • Vue项目中配置pug解析支持

    2024-05-09 09:52:53
  • Python之Scrapy爬虫框架安装及使用详解

    2022-10-02 18:28:20
  • Python Matplotlib绘制箱线图boxplot()函数详解

    2021-03-09 11:16:07
  • python中的一些类型转换函数小结

    2021-11-01 10:42:11
  • Python实现文件操作帮助类的示例代码

    2023-02-14 16:46:57
  • python3+pyqt5+itchat微信定时发送消息的方法

    2022-02-28 04:31:49
  • GoFrame通用类型变量gvar与interface基本使用对比

    2024-04-27 15:26:26
  • python使用KNN算法识别手写数字

    2022-02-20 10:48:23
  • Requests库实现数据抓取与处理功能

    2021-09-24 01:44:09
  • ​​​​​​​如何利用python破解zip加密文件

    2022-11-27 17:51:30
  • Python HTTP客户端自定义Cookie实现实例

    2023-12-16 01:19:30
  • 解决Python3 抓取微信账单信息问题

    2021-10-15 12:54:02
  • IPv6设置后如何解决MySQL无法连接localhost的问题

    2024-01-20 00:50:38
  • Python面向对象程序设计之私有属性及私有方法示例

    2023-11-21 06:29:04
  • Python3.5 Pandas模块之Series用法实例分析

    2022-07-23 16:19:09
  • 对Python random模块打乱数组顺序的实例讲解

    2023-03-24 16:51:57
  • asp之家 网络编程 m.aspxhome.com