求大牛翻译这段Javascript代码的意思 var _ie=(function(){ var v=3, div=document.createElement('div'), all=document.getElementByTagName('i'); while( div.innerHTML = '<!--[if gt IE '+ (++v) +']><i></i><![endif]-->', all[0] ); return v > 4 ? v : false;}());javascriptie判断ie版本 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这句:_ie=function(){return v;}();是定了一个匿名函数,并立刻调用,由 _ie 保留返回值等同于function noname(){v = "test";return v;}_ie=noname();这句:div.innerHTML = '<!--[if gt IE '+ (++v) +']><i></i><![endif]-->', all[0]化简div.innerHTML = ''+ (++v) +'',all[0]首先要了解逗号运算符:它将先计算逗号左边的参数,再顺序计算右边的参数值。然后返回最右边参数的值。*然后,很重要的一点,逗号运算符的优先比 = 小所以,上述代码运行时的优先顺序是:(div.innerHTML = ''+ (++v) +''),(all[0])而 all[0] 作为 while 是否继续执行的条件这句:while( div.innerHTML = '<!--[if gt IE '+ (++v) +']><i></i><![endif]-->', all[0] );写成下面的样子容易懂些:while([条件]) ; //do nothing难点都解释了,还有个问题,当 all[0] 为非空时, while(true) 死循环,估计写错了,改一下while( div.innerHTML = '<!--[if gt IE '+ (++v) +']><i></i><![endif]-->', all[v] ); 这个地方貌似是判断 ie版本号的这个all=document.getElementByTagName('i') 这个很费解,为毛要用这个来做while循环的标记。这个完全没有关系啊。。 首先说,all = document.getElementByTagName('i');代码错了,应该是:all = document.getElementsByTagName('i');while循环猜不出来,可能是一种特殊的处理吧,这是从那儿看的这么奇葩的代码,全部发出来让我们学习一下。 js中怎么获取选中文本的父元素? 求一个正则表达式 简单交互,js请求时怎么提交form表单 文字焦点 JavaScript 怎么才能知道textarea 是否自动换行 在线等 关于JS创建文件夹的问题 如何让层动态显示在不同位置上 要一个关于关于姓名的校验 难题:要求打印一种文书,一次打印两份,两份之间有一行注解不同,还要跟着打印一个回执,要求一次完成,可以实现吗? 一个表单提交的问题,谢谢了 Ext中跨域更新数据怎么办???!!! 有一个表格 我想点击一个按钮 让他增加一行~然后表格里的内容跟上一行一样~
_ie=function(){return v;}();
是定了一个匿名函数,并立刻调用,由 _ie 保留返回值
等同于
function noname(){
v = "test";
return v;
}
_ie=noname();这句:
div.innerHTML = '<!--[if gt IE '+ (++v) +']><i></i><![endif]-->',
all[0]
化简
div.innerHTML = ''+ (++v) +'',all[0]首先要了解逗号运算符:
它将先计算逗号左边的参数,再顺序计算右边的参数值。然后返回最右边参数的值。
*然后,很重要的一点,逗号运算符的优先比 = 小所以,上述代码运行时的优先顺序是:
(div.innerHTML = ''+ (++v) +''),(all[0])
而 all[0] 作为 while 是否继续执行的条件这句:
while(
div.innerHTML = '<!--[if gt IE '+ (++v) +']><i></i><![endif]-->',
all[0]
);
写成下面的样子容易懂些:
while([条件])
; //do nothing难点都解释了,还有个问题,当 all[0] 为非空时, while(true) 死循环,估计写错了,改一下
while(
div.innerHTML = '<!--[if gt IE '+ (++v) +']><i></i><![endif]-->',
all[v]
);
这个all=document.getElementByTagName('i') 这个很费解,为毛要用这个来做while循环的标记。这个完全没有关系啊。。
all = document.getElementByTagName('i');代码错了,
应该是:
all = document.getElementsByTagName('i');
while循环猜不出来,可能是一种特殊的处理吧,这是从那儿看的这么奇葩的代码,全部发出来让我们学习一下。