javascript 的 quine 程序(升級版)

本文來自個人博客:http://justjavac.com/javascript/2013/10/11/javascript-quine-plus.htmljavascript

Quine 以哲學家 Willard van Orman Quine (1908-2000) 而命名,在維基百科中她的定義是:html

一個 quine 是一個計算機程序,它不接受任何輸入,且惟一的輸出就是自身的源代碼。java

編寫出某個語言中最簡短的 quine 一般做爲黑客們的消遣,好比下面的 javascript 代碼就是一個 quine 程序segmentfault

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

網上已經有不少黑客寫出了各類各樣的 quine 程序,所以我就再也不班門弄斧了。 可是,既然我博客的關於頁面都已經摺騰出升級版了,那麼咱們就再折騰一個 quine++ 出來。ui

quine 程序的升級版——動態的 quine。 .net

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

點此查看對比版注意輸出結果的紅字部分htm

經過查看源代碼的幾個 javascript 關鍵字能夠看出:ip

  • 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/

相關文章
相關標籤/搜索