Cla*_*dio 6 javascript internet-explorer
好吧,这让我抓狂:
第一个例子,没问题:
<script>
window.myvar = 150;
if (false) {
var myvar = 3;
}
// This will popup "150"
alert(myvar)
</script>
Run Code Online (Sandbox Code Playgroud)
现在,使用两个脚本元素:
<script>
window.myvar = 150;
</script>
<script>
if (false) {
var myvar = 3;
}
// This will popup "undefined"
alert(myvar)
</script>
Run Code Online (Sandbox Code Playgroud)
用IE8测试.
你知道为什么吗?
在第二个示例中,在第二个script块中,myvar已被提升(根据规范)到包含范围的顶部。请记住,JavaScript 没有块作用域,只有函数作用域。
因此,var myvar(解释的提升定义)将导致在VariableObject上查找时myvar出现。undefinedalert()myvar
| 归档时间: |
|
| 查看次数: |
726 次 |
| 最近记录: |