当我使用未定义的参数测试我的函数时,我的脚本中出现错误'foo' is undefined.
。据我了解,这不应该发生。
我的主叫代码:
//var foo
var test = peachUI().stringIsNullOrEmpty(foo) ;
我的功能(更大框架的一部分)。
stringIsNullOrEmpty: function (testString) {
/// <summary>
/// Checks to see if a given string is null or empty.
/// </summary>
/// <param name="testString" type="String">
/// The string check against.
/// </param>
/// <returns type="Boolean" />
var $empty = true;
if (typeof testString !== "undefined") {
if (testString && typeof testString === "string") {
if (testString.length > 0) {
$empty = false;
}
}
}
return $empty;
}
有什么想法吗?
请注意。在发布这个问题之前,我已经很好地阅读了其他类似的问题。
答案 0 :(得分:2)
你不能将一个不存在的变量(undefined
,而不是null
... 存在的那个)传递给一个函数,它试图获取调用
foo
传递的值
var test = peachUI().stringIsNullOrEmpty(foo);
...它不存在,所以你只是在那条线上得到了错误,就像你用一个更简单的情况一样:
alert(foo);
现在,如果您尝试将其称为某事物的属性,那么它就是有效的,例如:
alert(window.foo);
然后传入undefined
,因为它是已知/当前对象的未定义属性。
答案 1 :(得分:0)
我也得到了错误,但它与您的代码无关,这是因为您将一个不存在的变量传递给函数。这有效:
var foo = undefined;
var test = peachUI().stringIsNullOrEmpty(foo) ;
顺便说一下。该错误已经告诉您问题不在您的函数中,否则为'testString' is undefined
。