我想要一个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>
答案 0 :(得分:5)
您需要直接执行typeof
检查,而不是在函数内部执行。
原因与PHP完全相同(除非你使用pass-by-reference,否则你的函数也会破坏):
isset(b)
会导致抛出异常,因为b
是一个未定义的变量,并将其作为参数传递尝试读取它不能执行的操作。因此,typef
检查永远不会执行。