2

我发现自己使用以下方法检查是否存在大量 javascript 元素:

if (typeof elem == "undefined")
  // Do something

我想创建一个函数,以便减少代码重复。

if (exists(elem))

这是我创建的函数:

if (typeof exists == 'undefined') {
    function exists (e)
    {
        if (typeof e == "undefined")
            return false;
        return true;
    }
}

问题是变量在通过函数之前是未定义的。它会生成一个 javascript 错误。如何创建一个函数来处理这个问题?

4

1 回答 1

3

“问题是变量在通过函数之前是未定义的。它会产生一个 javascript 错误。”

通过"undefined",我假设您的意思是"undeclared",因此导致ReferenceError.

如果是这样,您需要在将其传递给函数之前测试它是否存在,这使得该函数毫无意义。

与其尝试创建一个函数来测试未声明的变量,不如在使用它们之前简单地声明它们。

IMO,typeof x === 'undefined'是一个丑陋的黑客,不应该是必要的。你应该考虑ReferenceError成为一个朋友,告诉你一些事情需要修复。黑客阻止你的typeof朋友告诉你发生了什么。

于 2012-02-16T02:40:27.417 回答