在JavaScript中,键入“undefined”应该有一个值“undefined”。但是,在下面的这个例子中,未声明的xxx具有“未定义”类型,但显然它没有任何类型的值。由于xxx中没有值,JS抛出异常没有任何区别。为了保持一致,JS应该在typeof xxx上抛出异常。否则,我们在这里有一个很大的逻辑漏洞。
<!DOCTYPE html>
<html>
<body>
<script>
document.write("Type=" + typeof xxx);
document.write(", Value=");
document.write(xxx);
</script>
</body>
</html>
答案 0 :(得分:0)
您需要先看看:
在您的示例中,您实际上从未将xxx
声明为变量,因此当document.write(xxx)
变量xxx
不存在时。
var xxx;
document.write("Type=" + typeof xxx);
document.write(", Value=");
document.write(xxx);
声明var xxx;
没有值会实例化它,因为它没有分配值,默认分配将是undefined
中所述的select
。