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