如何检查字段是否已声明?

时间:2012-03-24 03:06:43

标签: javascript

这是我的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>
        JS Test
    </title>
        <script type="text/javascript" src="jquery-1.4.2.min.js"></script>
        <script type="text/javascript">
        if(someObj != null || typeof someObj != 'undefined')
        {
            alert("Success.");
        }
        else
        {
            alert("Failed.");
        }
    </script>
</head>
<body>

为什么它总是返回错误信息 - “someObj未定义”给我? 我想把代码放到页面底部,检查someObj是否已被声明。

3 个答案:

答案 0 :(得分:2)

反过来说:

    if(typeof someObj != 'undefined' && someObj != null)
    {
        alert("Success.");
    }
    else
    {
        alert("Failed.");
    }

也就是说,在您确定已将someObj确定为已确认后,请勿尝试实际使用typeof

如果事实上未定义变量,当您使用if启动someObj != null条件时,会收到错误“someObj未定义”,因为 - 好吧,不是已定义。

如果您首先使用typeof对其进行测试,那么除非实际定义,否则它不会进行null比较。

答案 1 :(得分:0)

正确测试全局变量是否存在的方法如下:

if (typeof window.someObj != "undefined" && window.someObj != null) {
    alert("success");
}

但是,你确实意识到在这段代码之前没有你自己的自定义javascript可以定义someObj,所以这个测试永远不会找到那个变量。

答案 2 :(得分:0)

如果您的对象是Jquery对象,请使用

var myObj=$('#myObj'); if (myObj.length) { alert("Success"); } else { alert("NOt found"); }