<script type="text/javascript">
alert([1,2]);//相当于alert([1,2].toString()); --这在IE与非IE上都相同,都会弹出"1,2"
alert([1,]);//相当于alert([1,].toString());--在非IE的标准浏览器上,js引擎会自动删除最后的",",所以在IE上会弹出"1,",而在非IE上会弹出"1"
alert(+[1,]);//根据上面的解释,这一句在IE上相当于alert(+"1,"),而在非IE上相当于alert(+"1"),正号的作用在于试图将字符串转换为数字,"1,"当然不是数字,而"1"可以转换为数字1,所以最终的结果:IE上会转换失败弹出"NaN",而非IE浏览器上会弹出数字"1"
//上面的+号转换字符串为数字的测试
var s = +"5";
alert(s+1);
//ok,到这里为止,我们知道 +[1,] 最终在IE为上NaN,在非IE浏览器上则为数字1
//下面再来看看很有个性的NaN
alert(NaN==true);//弹出 false
alert(NaN==false);//弹出 false
alert(NaN==NaN);//弹出 false
//即NaN不管与谁比较都是false
alert(!NaN);//相当于alert(!(NaN==true)),根据上面的解释当然是弹出true
//所以,alert(!+[1,]) 最终在IE上会弹出"true",下面再来看看firefox等非IE浏览器上的表现
alert(new Boolean(0));//false
alert(new Boolean(1));//true
alert(new Boolean(-1));//true
//即:数字0会转换为false,其它任何数字都会转换为true,所以最终在非IE浏览器上最终等效于:
alert(!1);
//即
alert(!true)//最终会得到false
//综上所述:下面的这个判断就能判定浏览器是不是IE
if (!+[1,]){
alert("我是货真价实的IE浏览器!")
}
else{
alert("我不是IE!")
}
</script>
原文链接:http://www.cnblogs.com/yjmyzz/archive/2010/05/13/1734695.html
分享到:
相关推荐
这句代码在IE9之前曾被称为世界上最短的IE判定代码。代码虽短但确包含了不少javascript基础知识在里面。在这个例子中代码执行时会先调用数组的toString()方法 ,执行[1,].toString()在IE6,7,8中将会得到“1,”。...
以前最短的IE判定借助于IE不支持垂直制表符的特性搞出来的。 代码如下: var ie = !+”\v1″; 仅仅需要7bytes!参见这篇文章,《32 bytes, ehr … 9, ehr … 7!!! to know if your browser is IE》,讲述外国...
IE的有条件注释是一种专有的(因此是非标准的)、对常规(X)HTML注释的Miscrosoft扩展。顾名思义,有条件注释使你能够根据条件(比如浏览器版本... 让我们据几个例子来看看吧—— 只有IE才能识别 因为只有IE5以上的版
这个目前世界上最短的 Javascript 判定 IE 浏览器的方法来自俄罗斯!它已经在各版本的 IE 以及目前其他流行的浏览器上经过测试,基于 IE 的 Bug,微软虽然已经意识到,但是从来没有纠正过。 代码如下: [removed] var...
to know if your browser is IE》,讲述外国人是如何把IE的判定从32 bytes一步步缩简成7 bytes!的故事 但这纪录今年1月8日被一个俄国人打破了,现在只要6 bytes!它利用了IE与标准浏览器在处理数组的toString方法的...
to know if your browser is IE》,讲述外国人是如何把IE的判定从32 bytes一步步缩简成7 bytes!的故事 但这纪录今年1月8日被一个俄国人打破了,现在只要6 bytes!它利用了IE与标准浏览器在处理数组的toString方法的...
本资源为一份关于三极管工作状态判定的PPT教案,主要讲解了三极管的工作状态判定方法,包括判定法、电流关系判定法和电位判定法等内容。 一、三极管工作状态判定法 三极管的工作状态可以通过判定法来确定。判定法...
具体来说,在IE6、IE7和IE8版本中,HTTP请求的默认超时时间各不相同,尤其是IE7和IE8版本中,默认超时时间较短,如果服务器未能在规定时间内响应,浏览器就会判定为请求失败,从而引发错误提示。 #### 三、解决方案...
熟悉jq的朋友可能会偶尔用到判定当前浏览器是否为ie,甚至是具体到ie哪个版本。比如说判定当前浏览器是ie7 ,写法如下: if($.browser.msie && $.browser.version==7){ //ie7下执行该区域代码 } 原生js,仿jq写法,...
Cookie的应用非常广泛,典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是Cookie的功用。另一个重要应用场合是购物车之类处理。用户...
结果是五花八门: [object Object]IE6 [object Object]IE8 [object Window]firefox3.6 [object Window]opera10 [object DOMWindow]safai4.04 [object global]chrome5.0.3.22 看一下赫赫有名怎样判定,就判定它是否...
JavaScript中的数据类型判定是前端开发中常用到的一项基础技能。在这篇笔记中,作者详细地介绍了在JavaScript中如何判定数据类型,并提供了一些实用的函数和方法,帮助开发者能够更加准确地识别和处理各种数据类型。...
需要注意的是,这种方法需要额外的判定以处理数组为空的情况,并且由于浏览器对分组的处理速度较慢,这种方法的效率并不高。 6. 第六种实现则是第五种的优化版本,通过使用非捕获性分组(?:exp),提高了性能,但是...
// 判定浏览器为IE6 if (!$.support.style && $.browser.msie && ($.browser.version == 6.0)) { var imgWidth = $(this).width(); var imgHeight = $(this).height(); var maxHeight = maxWidth * imgHeight /...
如果蛇头的坐标与食物或蛇身的某一个坐标相同,就判定发生了碰撞。 7. **分数系统**:吃到食物后,游戏通常会增加分数。这可以通过维护一个变量记录分数,并在每次吃食物时进行更新。 8. **动画效果**:为了使游戏...
// IE & W3C browsers return "[native code]" // Safari [function]" (/{s*[native code]s*}|^[function]$/).test(object[method].toString()); }; ``` 这里增加了一个额外的参数`object`,以便可以直接指定要...
这种方法特别适用于IE浏览器,从IE5版本开始就已经支持。HTML注释的一般格式是“<!--注释内容-->”,但IE扩展了HTML注释的语法,使其能够支持条件注释。条件注释的格式为“<!--[if 表达式]>HTML代码<![endif]-->”,...