在V2上看到了这样一个问题

如何用最短的JavaScript代码消耗最多的时间?

让函数 f 运行 10s 以上,最终输出 true,代码越短越好。(不能有交互。)
// 挑战目标:让函数 f 运行 10s 以上,代码越短越好
function f() {
  // 在此写入你的代码:
  // ...
  

}

(function() {
  var now = Date.now;
  var t1 = now();
  f();
  var t2 = now();
  console.log(t2 - t1 > 10000);
})();

首选当然是这种调调↓ 能拖一秒算一秒

function f() {
// 在此写入你的代码:
// ...
setTimeout(()=>{alert("10 秒过了")},10000)
}

但是想想并不妥,在 setTimeout 将函数和数值交给 WebAPI 了以后 f() 就退出了。而上述测试代码是看 f() 运行前后的时间差。

如果允许加载一段外部 js 的话~
随便挂一段挖矿病毒进去吧!(不过最近好像比较赔钱……算了

无法匹配正则是最消耗时间的:

function f1() {
return /(x+x+)+y/.exec("xxxxxxxxxxxxxxxxxxxx") || true; // 10s
}
function f2() {
return /(x+x+)+y/.exec("xxxxxxxxxxxxxxxxxxxxx") || true; // 20s
}

不对单位好像错了……

再来一个

单位错了,是 10ms 和 20ms
增加到 30 个 x 可以超过 10s

function f3() {
return /(x+x+)+y/.exec("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") || true; // > 10s
}

再不行只能逼我出绝招了!

function f() {
alert("hello world --joynop!")
}

(function() {
var now = Date.now;
var t1 = now();
f();
var t2 = now();
console.log(t2 - t1 > 10000);
})();

阻断就行了,你不点想要多久都 ok

啧啧啧

等会……

是让 CPU 跑十秒?

还是让浏览器窗口卡十秒??