在JavaScript中,輸入「undefined」應該有一個值「undefined」。但是,在下面的這個例子中,未聲明的xxx的類型爲「未定義」,但顯然它沒有任何價值。 JS沒有任何區別,因爲xxx中沒有值會引發異常。爲了保持一致性,JS應該在typeof xxx上引發異常。否則,我們在這裏有一個很大的邏輯漏洞。undefined類型的數據沒有值?
<!DOCTYPE html>
<html>
<body>
<script>
document.write("Type=" + typeof xxx);
document.write(", Value=");
document.write(xxx);
</script>
</body>
</html>
你的問題沒有道理; 'undefined'不是「類型」。 – Pointy
http://www.ecma-international.org/ecma-262/6.0/index.html#sec-typeof-operator - 根據規範,如果變量無法解析,則返回undefined,而不是錯誤,但如果你想獲取變量的值,並且它是無法解析的,那麼會拋出'ReferenceError' - 所以這裏沒有問題 –
好吧,它是低級語言語義上的「類型」,但它不是實際JavaScript編程類型意義上的「類型」。無論如何,[11.4.3](http://www.ecma-international.org/ecma-262/5.1/#sec-11.4.3)就是這個問題的答案。當操作數無法解析時,'typeof'運算符顯式返回'undefined'。 – Pointy