为IE找个新死法

本文通过一段简单的代码揭示了不同浏览器在处理大量连续运算时的表现差异。IE6和IE7分别在处理约3万个加法运算时崩溃,Opera在大约3.2万个时失败,而Firefox则能处理更多的运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IE在解释表达式的时候显然大有优化的余地,FireFox就没这个毛病。下面这段小代码可以轻松让IE崩溃掉:
var n=32768;
var s=new Array(n).join("0+")+0;
if(confirm("真的要杀了浏览器吗?")){
    eval(s);
    alert(
"杀不掉,试试把n调大一点?");
}

其实就是让IE解析一个“0+0+0+0....”的表达式。
在我的机器上,IE6跑到32255个加法计算就自动关闭了(可以作为一个新的无提示关闭浏览器漏洞呵呵,会把同一个进程打开的全部窗口一起杀掉),IE7还要差些,在31515就挂了。opera也好不到哪里去,32180就崩溃了。而FireFox一直跑到2^27(ie和opera还不到2^15)的时候把我的内存全吃光了,在虚拟内存支持下还是可以执行完成:
var s="0+",n=27 ;
for(var i=0;i<n;i++) s+=s; 
alert(s.length
/2
s
+=0
if(confirm("真的要杀了浏览器吗?")){ 
eval(s); 
alert(
"杀不掉,试试把n调大一点?"); 
}
 
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值