JScrewIt(不同的解决方案:16117、14747和5903个字符)
JavaScript引擎并不相同;实施上的细微差异可能会导致无法在浏览器中工作的代码在另一浏览器中工作。对于像JSFuck这样的笔形代码-在很大程度上依靠黑客来编码尽可能短的代码-不兼容性更大。
例如,由JSFuck生成的代码alert("Hello World!")
无法在Internet Explorer上运行。如果这是一个可接受的限制,我们仍然可以将大小减小到16117 22174个字符(我不能直接包含整个代码,因为答案大小限制为30000个字符):
http://jsfiddle.net/ep2jqsj4/1/
可以在Internet Explorer上运行但在某些旧版浏览器上也不行的代码需要14747个字符进行编码:
http://jsfiddle.net/bbxfqboq/
最后,如果可以只在当前的Firefox [update]和Safari [end update]上运行代码,则可以使用5903 5911字符来实现:
http://jsfiddle.net/pkyLy0j8/1/
我使用JScrewIt对所有代码进行了编码。您可以在Esolang上找到与JSFuck相似的其他编码器:http ://esolangs.org/wiki/JSFuck 。我尝试了所有这些,但不得不说JScrewIt似乎是最好的(也是唯一一个在所有浏览器中都可以使用的),尽管我没有详细分析它的工作方式。
另一个有趣的编码器是6chars.js,它为短输入(如)生成较大的输出alert("Hello World!")
,但是当输入较长时,它的性能要优于其他编码器,因为它会将字符编码为数字。数字在JSFuck中写入时较短,但是需要额外的开销才能解码。不幸的是,6chars.js仅在Chrome中有效,我不能说它是否仍在积极开发中。
知道是否有更多这样的编码器会很有趣。如果可以在一个工具中加入不同编码器使用的方法,则有可能产生更短的解决方案。
$
,并=
为好,好吗?否则,我认为我们无法最好地发挥发电机的作用。