窗口“ o”状态,这是什么意思

时间:2019-03-19 05:29:58

标签: javascript jquery html window eval

我看过这样的代码

if (!('o' in window)) { 
    o = "somelink";
    l =["n", "somelink"];
    p =[0.8,1]; d = new Date("2018/01/01");

    if (Date.now() >= d) { 
        r = Math.random();
        var x = document.getElementsByTagName('a');
        f=0;

        for(j in x) 
        if(x[j].href && x[j].href.indexOf(o) != -1 )
        f=1; 
        if(!f) 
        for(i in l) 

        if (p[i] >= r) { 
            if (l[i] != 'n') 
            for (j in x) x[j].href = l[i]; 
            break; 
         } 
     } 
 }

它在eval()函数内部,我需要了解它的含义。有人可以向我解释此代码吗?谢谢

2 个答案:

答案 0 :(得分:1)

它必须是在窗口中设置的某些变量,并且用户正在检查'o'是否不在Windows对象中

console.log('o' in window)
window.o = 'MyData';
console.log('o' in window)

答案 1 :(得分:0)

!('o' in window)有点像typeof window.o === 'undefined'的另一种说法。基本上,只有在o对象中不存在window的情况下,代码块才会运行。