VBScript的IsEmpty在JavaScript中是否具有同等效力?

时间:2009-08-14 03:53:41

标签: javascript vbscript

使用Javascript,是否有相同的功能或功能,因此VBScript的IsEmpty功能? VBScript函数返回给定变量是否为“空”,例如由于所有变量实际上都是VARIANT,无论VARIANT是否具有vt的VT_EMPTY,而我为Javascript找到的大多数都是字符串特定的或不可推广的。

5 个答案:

答案 0 :(得分:5)

JavaScript有许多不同的值,可以被视为“空”,并且有许多不同的方法可以测试为空。

首先是空的:

  1. undefined:尚未分配的值。如果您创建了一个变量,但没有为其赋值,那就是它将包含的内容。

  2. null:这是一个可以分配给任何var的对象值。

  3. 接下来如何测试它们。 JavaScript松散地输入了很多隐式类型转换。这意味着当两个值具有不同类型时,标准等于运算符==执行类型coersion。三等于运算符执行类型coersion,这使其成为针对特定值进行测试的最佳运算符。

    1. 您可以测试返回可以测试的字符串的值的类型(注意三等号运算符):

      if ("undefined" === typeof myFoo) { /* this would be considered empty */ }
      
    2. 您可以针对关键字undefined注意三等号运算符)进行测试:

      if (undefined === myFoo) { /* this would be considered empty */ }
      
    3. 您可以针对关键字null注意三等号运算符)进行测试:

      if (null === myFoo) { /* this would be considered empty */ }
      
    4. 你可以测试空字符串""注意三等号运算符):

      if ("" === myFoo) { /* this would be the empty string */ }
      
    5. 如果你期望一个通常不会被强制转换为布尔值false的值,那么你可以直接在if语句中测试它的存在来测试它的存在:

      if (!myFoo) {
          /* this would be any falsy value, including false, null, 0, undefined */
      } else {
          /* this would be any truthy value, including objects,
          numbers other than zero, Dates, etc. */
      }
      
    6. 大多数情况下,如果你期待“真实”的东西,你可以直接测试它,它将被强制转换为布尔值。简而言之,您可能会将其定义为:

      function isEmpty(value) {
          return !value;
      }
      

      但是在对象之前添加!!!以获取其值通常更有意义。如果您期望false0(零)作为有效值,请务必小心。在这些情况下,最好测试typeof对象并做出相应的选择。

答案 1 :(得分:3)

不确定,如果这是它应该是什么

typeof variable == "undefined"

答案 2 :(得分:2)

function IsEmpty( theValue ) 
{ 
    if ( theValue === undefined ) 
    { 
        return true; 
    } 
    return false; 
}

答案 3 :(得分:1)

function isEmpty(value){      返回值== null ||值===“”;    }

答案 4 :(得分:0)

不存在。

您将始终针对“null”,undefined和“”测试变量。 (这很无聊)