javascript 的 quine 顺序(升级版)

本文来自我的博客:http://justjavac.com/javascript/2013/10/11/javascript-quine-plus.html

Quine 以哲学家 Willard van Orman Quine (1908-2000) 而定名,在维基百科中她的定义是:

一个 quine 是一个计算机顺序,它不接收任何输入,且唯一的输出就是本身的源代码。

编写出某个言语中最简短的 quine 一般作为黑客们的消遣,比方下面的 javascript 代码就是一个 quine 顺序

!function $(){console.log('!'+$+'()')}()

网上已有许多黑客写出了林林总总的 quine 顺序,因而我就不再班门弄斧了。 然则,既然我博客的关于页面都已折腾出升级版了,那末我们就再折腾一个 quine++ 出来。

quine 顺序的升级版——动态的 quine。

http://jsfiddle.net/justjavac/RN2PL/

点此检察对照版注重输出效果的红字部份

经由过程检察源代码的几个 javascript 关键字能够看出:

  • setIntervalDate 用来做动态效果
  • 他本身输出了本身,而且 Date 照样动态的:

    s = ( "setInterval(z='" // 外层代码
          + z.replace(/[\\\']/g,"\\$&") // COOL
        + "\')" ) // 赋值完毕
        .match(/.{1,37}/g).join("\\\n"); // 组装
    
  • 输出到 document.body.innerHTML,并用 <pre> 标签包围起来

  • 动态替代字符串的一部份。

末了在附赠一个,这个实在不能算是严厉的 quine 顺序:能够转动的地球仪

http://jsfiddle.net/justjavac/KbetG/

    原文作者:justjavac
    原文地址: https://segmentfault.com/a/1190000000318565
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞