【问题标题】:Checking for JavaScript null values检查 JavaScript 空值
【发布时间】:2011-04-05 05:17:47
【问题描述】:

我正在使用 Yahoo 用户界面 API。如果我有以下情况:

var field = yuiDom.get('dobfield');

是否需要检查以下内容:

if (field == null)

我是一名 .NET 开发人员,每当我尝试在我的网页上获取对控件的引用时,我总是检查空值。我检查了 YUI 示例,并且对控件的引用被广泛使用,但是我在哪里查看它们是否检查是否有引用。

【问题讨论】:

    标签: javascript web-applications yui yahoo


    【解决方案1】:

    你可能会看到:

    if(field)
    

    if(!field)
    

    本质上,这些意味着 if 为 null,并且 if 不为 null。但是,它们等价于

    if (field == null)
    

    if (field != null)
    

    【讨论】:

      【解决方案2】:

      在 YUI 2 中你可以这样做:

      var lang = YAHOO.util.Lang;    
      var ctl = YAHOO.util.Dom.get("dobfield");
      
      if (lang.isNull(ctl)) {
         alert("Control is null");
      } else { 
         alert("found control");
      }
      

      YAHOO.util.Lang 是全局 YAHOO 对象的一部分,它有很多有用的跨浏览器功能,例如 isNull。由于您使用的是 YAHOO.util.Dom,因此默认情况下您有 Lang。

      【讨论】:

        【解决方案3】:

        如果您正在引用您创建的控件并且知道它们会在那里,我认为没有必要检查 null。

        【讨论】:

          【解决方案4】:

          在 JavaScript 中,null 值很少使用,除非您明确定义它,否则您不会有 null 值,相反,非引用对象有 undefined 值,正如 Corey Sunwold 所说,您可以看到这个:

          if(obj) {
              alert(true); // obj could be (object, not empty string, not null, a not zero number)
          } else {
              alert(false); // obj could be (undefined, null, '', 0)
          }
          

          前一种方法不适用于空对象和空数组,这种情况可以使用jquery isEmptyObject 方法。

          【讨论】:

          • 您的 if 与 Corey 的 if 不同。如果应该检查未定义/空值,您不是第一个吗?你不是反过来吗?
          • 是的,它将检查未定义、空、零和空字符串
          猜你喜欢
          • 2013-05-16
          • 2015-05-21
          • 1970-01-01
          • 2011-09-07
          • 1970-01-01
          • 1970-01-01
          • 2017-11-07
          • 2020-05-27
          • 2012-09-22
          相关资源
          最近更新 更多