检查是否在javascript中设置了变量

时间:2013-04-05 21:43:27

标签: javascript

我想要一个JS函数来说明是否设置了变量。我在下面定义了isset()。

它的行为很奇怪,如评论中所述。有什么想法吗?

<html>
    <head></head>
    <body>
        <script type="text/javascript">

          function isset(variableName) {
            return typeof variableName != 'undefined';
          }

          a = 5;
          console.log(isset(a)); 
          console.log(isset(b)); // returns an error.
        </script>
    </body>
</html>

1 个答案:

答案 0 :(得分:5)

您需要直接执行typeof检查,而不是在函数内部执行。

原因与PHP完全相同(除非你使用pass-by-reference,否则你的函数也会破坏):

isset(b)会导致抛出异常,因为b是一个未定义的变量,并将其作为参数传递尝试读取它不能执行的操作。因此,typef检查永远不会执行。