首页 新闻 会员 周边 捐助

问个Javascript技巧/语法问题

0
悬赏园豆:5 [已关闭问题]

     var getElementById = function(id) {
         var el = document.getElementById(id);       
         if (! +"\v1") {
             if (el && el.id === id) {
                 return el
             } else {
                 var els = document.all[id], n = els.length;
                 for (var i = 0; i < n; i++) {
                     if (els[i].id === id) {
                         return els[i]
                     }
                 }
             }
         }
         return el;
     } 

这里的“if (! +"\v1") {}” 是什么意思?为什么这么写啊?

小火的主页 小火 | 菜鸟二级 | 园豆:242
提问于:2009-12-30 10:24
< >
分享
其他回答(2)
0

你确定你的这个跑起来不报错的?看着怪怪的  还有 === 的?

死神的背影 | 园豆:667 (小虾三级) | 2009-12-30 16:29
=== 这个运算符比较两个数的时候不进行类型转换的 == 会进行类型转换后再比较 所以: alert('55' == 55); //outputs true alert('55' === 55); //outputs false
支持(0) 反对(0) 小火 | 园豆:242 (菜鸟二级) | 2009-12-30 16:58
0

由于没有全部代码我只能估计,v1是不个变量,这里测试这个变量是否存在

gotolnc | 园豆:47 (初学一级) | 2009-12-31 16:32
0

这个是判断是否在IE中

IE里不能把 "\v" 处理成垂直符,所以在IE里它就是表示"\v"这个字符串。
所以"\v1"为字符串。
前面的+号把后面的字符串转换成数字,由于"\v1"在IE里为字符串
所以 +"\v1" 转换失败,其值为NaN
所以 !+"\v1"的值为 true
所以在IE里 if(!+"\v1")

Tmac_ | 园豆:205 (菜鸟二级) | 2010-01-06 21:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册