使用Javascript,是否有相同的功能或功能,因此VBScript的IsEmpty功能? VBScript函数返回给定变量是否为“空”,例如由于所有变量实际上都是VARIANT,无论VARIANT是否具有vt的VT_EMPTY,而我为Javascript找到的大多数都是字符串特定的或不可推广的。
答案 0 :(得分:5)
JavaScript有许多不同的值,可以被视为“空”,并且有许多不同的方法可以测试为空。
首先是空的:
undefined
:尚未分配的值。如果您创建了一个变量,但没有为其赋值,那就是它将包含的内容。
null
:这是一个可以分配给任何var
的对象值。
接下来如何测试它们。 JavaScript松散地输入了很多隐式类型转换。这意味着当两个值具有不同类型时,标准等于运算符==
执行类型coersion。三等于运算符不执行类型coersion,这使其成为针对特定值进行测试的最佳运算符。
您可以测试返回可以测试的字符串的值的类型(注意三等号运算符):
if ("undefined" === typeof myFoo) { /* this would be considered empty */ }
您可以针对关键字undefined
(注意三等号运算符)进行测试:
if (undefined === myFoo) { /* this would be considered empty */ }
您可以针对关键字null
(注意三等号运算符)进行测试:
if (null === myFoo) { /* this would be considered empty */ }
你可以测试空字符串""
(注意三等号运算符):
if ("" === myFoo) { /* this would be the empty string */ }
如果你期望一个通常不会被强制转换为布尔值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. */
}
大多数情况下,如果你期待“真实”的东西,你可以直接测试它,它将被强制转换为布尔值。简而言之,您可能会将其定义为:
function isEmpty(value) {
return !value;
}
但是在对象之前添加!
或!!
以获取其值通常更有意义。如果您期望false
或0
(零)作为有效值,请务必小心。在这些情况下,最好测试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和“”测试变量。 (这很无聊)