我看过这样的代码
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()
函数内部,我需要了解它的含义。有人可以向我解释此代码吗?谢谢
答案 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
的情况下,代码块才会运行。