首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

js 有关window的有关问题

2013-03-25 
js 有关window的问题function test(){var t aif(t in window){var a 1}alert(a)}//弹出undefined

js 有关window的问题


function test(){
var t = "a";
if(t in window){

var a = 1;
}
alert(a);
}
//弹出undefined
function test(){

if(t in window){
var t = "a";
var a = 1;
}
alert(a);
}
//弹出1



请问大神,这是为什么?一个在if块外面一个在if块里面,对if条件语句有什么影响,求解 js? window a undefined
[解决办法]
恩,

预编译的问题。

放外面的时候var t = 'a';t就不是undefined了。

放里面的时候执行到if的时候t还是undefined,而undefined算是一个特殊的数据类型,window下是可以直接访问的,所以undefined in window就是ture了。

两段代码预编译后是这个样子的:

function test(){
    var t = "a"//此时t='a'
    var a ;
    if(t in window){
        a = 1;
    }
    alert(a);
}
//弹出undefined
function test(){
    var t;
    var a;
    if(t in window){
        t = "a";
        a = 1;
    }
    alert(a);
}
//弹出1


简单的说你试一下

undefined in window

就知道了
[解决办法]
直接 
for(x in window){
    console.log(x+":"+window[x])
};
看看window里面包含不含自定义的变量就清楚了

热点排行