运行以下代码块时,FF 和 Chrome 输出typeof(hiya) = string
,而 IE7/8 输出typeof(hiya) = undefined
。
<html>
<body>
<script type="text/javascript">
window.hiya = 'hiya';
</script>
<script type="text/javascript">
if( false ) {
var hiya = 1;
}
document.write( "typeof(hiya) = "+ typeof(hiya) );
</script>
</body>
</html>
以下每一项都会使问题消失:
- 将所有内容组合成一个
<script>
块。 - 删除
if
块。 - 重命名
var hiya = 1
为var hiya2 = 1
. - 重命名
var hiya = 1
为window.hiya = 1
. - 重命名
var hiya = 1
为hiya = 1
.
怎么了?IE 中是否存在范围界定错误?