创建一个函数来检查JS元素是否存在

时间:2012-02-16 02:36:59

标签: javascript function undefined referenceerror

我发现自己正在检查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错误。如何创建一个处理此功能的函数?

1 个答案:

答案 0 :(得分:3)

  

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

通过“undefined”,我认为你的意思是“未声明”,因此导致ReferenceError

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

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

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