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

Don*_*n P 0 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>
Run Code Online (Sandbox Code Playgroud)

Thi*_*ter 5

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

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

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