我在一个JavaScript脚本中看到这样一句代码,不懂什么意思,怎么看都觉得它不合法:
if(p!=i)_(p,379,24)(p=i,24,379)
还有一句,我很怀疑它的格式和意图:
for(var r=document.getElementById(e).getElementsByTagName('dl'),c=clearInterval,i=-1,p=r[0],j; j=r[++i];)
if(p!=i)_(p,379,24)(p=i,24,379)
还有一句,我很怀疑它的格式和意图:
for(var r=document.getElementById(e).getElementsByTagName('dl'),c=clearInterval,i=-1,p=r[0],j; j=r[++i];)
if(p!=i)//比较
_(p,379,24)(p=i,24,379) //_应该是一个方法,调用 传三个参数进去,并且该方法返回值是一个方法,再调用传三个参数,并且在传值的时候把i的值 赋给p
for(var r=document.getElementById(e).getElementsByTagName('dl'),c=clearInterval,i=-1,p=r[0],j; j=r[++i];)//for循环括号内2个;,前面 为赋值表达式,第二个为判断语句;后面的为空,这里不执行
这里的_可能是一个function,而且他可能会返回一个function,
猜测是这样
function _(p, m1, m2){
....
return function(p1, m11, m22){
.....
}
}
var s;
var b;
if(b=s){
alert('真')
}else{
alert('假')
}
</script>
<script>
var s = 2;
var b;
if(b=s){
alert('真')
}else{
alert('假')
}
</script>将一个变量赋值(就是=运算符),也有返回值,返回的是这个变量的值。
也就是,如果r[++i]不是undefined,那么就返回真,for继续执行,如果r[++i]是undefined,那么终止for
判斷的時候也可以直接傳進去一個變量,如果這個變量為null、undefined、false或0,則條件不成立,其他的都成立。