0

我想要一个 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>
4

1 回答 1

5

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

原因与 PHP 中的原因完全相同(除非您使用传递引用,否则您的函数也会中断):

isset(b)导致抛出异常,因为b它是一个未定义的变量并将其作为参数传递试图读取它,这是您无法做到的。所以typef检查永远不会执行。

于 2013-04-05T21:44:22.923 回答