一段我从未见过的JS代码写法!

JavaScript022

一段我从未见过的JS代码写法!,第1张

('1("0")', 2, 2, 'OK|alert'.split('|'), 0, {})

这个不是最后一句 这个代码 其实是这样看

function(p,a,c,k,e,d) {这里是函数内容}('1("0")', 2, 2, 'OK|alert'.split('|'), 0, {})

也就是说 ('1("0")', 2, 2, 'OK|alert'.split('|'), 0, {})

这个是 函数 function(p,a,c,k,e,d) 的 五个参数

也就是

p='1("0")'

a=2

c=2

k='OK|alert'.split('|')

e=0

最后一个{} 是一个空对象

如果不好理解的话。。这样看

<script type="text/javascript">

var a=function(b,c,d){

alert(b+c+d)

}

a("我","爱","你")//弹出“我爱你"

</script>

接着我们换成上面的写法,不用 变量 a直接 把

a=function(b,c,d){

alert(b+c+d)

}

代入到 a("我","爱","你")

则有

<script type="text/javascript">

(function(b,c,d){

alert(b+c+d)

})("我","爱","你")//弹出“我爱你"

</script>

接着变 为 你代码里的那个形式 ,eval用来计算执行

<script type="text/javascript">

eval(function(b,c,d){

alert(b+c+d)

}("我","爱","你"))//弹出“我爱你"

</script>

至于卡巴报毒

是因为很多病毒木马的JS文件采用了这种压缩方法。

所以卡巴根据特征码误报也很正常 ~~

图片提交form:

然后js有验证为:

//报名验证

function checksub(form){

if(条件){ //判断是否登录

showModeWindow()//弹出登录框

return false

}

if(条件){ //登录是否输入姓名

alert("请填写真实姓名!")

$("#realname").focus()

return false

}

return ture

}

就这样,就是登录必须登录,并且输入了姓名后,才能提交表单。项目正常用了一段时间,没任何问题,可是有一天,客户突然问题,为什么报名表中有一

条数据没有用户姓名,我就觉得奇怪,就又返回测,怎么测,都会正常提交先登录,或是输入姓名。我百思不得其解。

所以,我都视这个问题为一灵异现象,直至今天,我的网速不好,我再次瞎点,真还发现我自己都提交了一报名信息。再试,再发一个问题,就是页面刚刚加载出提

交按键时,我就点击那个提交按钮,这时,js会发生一个错误,但瞬间就没了,因为页面已经转到报名结果页面。呵,这家伙,这我才明白,原来,网速不好,页

面加载慢,在页面刚加载到提交按钮时,我就点击提交,js验证到用户并未登录,所以执行

showModeWindow(),可是此时,这个弹出框相关的东

西还没有加载完毕,就会找不着相应对象,故产生js异常。而可罪恶的submit类型提交按钮,会忽略掉js异常,直接提交表彰。以后出理所谓的“灵异现

象”。

于是,当即改之如下:

js改为:

function checksub(){

if(条件){ //判断是否登录

showModeWindow()//弹出登录框

return

}

if(条件){ //登录是否输入姓名

alert("请填写真实姓名!")

$("#realname").focus()

return

}

$("#campaignFrom").submit()//提交表单。

}