| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 | <html><head>  <title>JSFuck - Write any JavaScript with 6 Characters: []()!+</title>  <meta name="description" content="JSFuck is an esoteric and educational programming style based on the atomic parts of JavaScript. It uses only six different characters to execute code.">  <meta charset="utf-8" />  <meta property="og:image" content="http://www.jsfuck.com/preview.png" />  <meta name="viewport" content="width=device-width" />  <style>        body {      padding: 20px;    }        body, * {      font-family: monospace;      font-size: 14px;      line-height: 1.4em;    }        h1 {      font-size: 2em;      position: absolute;      top: 70px;      font-weight: normal;      left: 140px;    }        h2 {      width: 90px;      text-align: right;      padding: 50px 5px 5px;      background: #F0DB4E;      color: #323230;      font-weight: bold;      font-size: 20px;      line-height: 1em;    }        h3 {      font-weight: bold;    }            p, li, textarea, .actions {      width: 100%;      max-width: 600px;    }        textarea {      display: block;      height: 200px;      margin: 1em 0;    }        ul.pre li{      white-space: pre;    }        .checkbox {      display: inline-block;    }        .actions a {      float: right;    }        .actions {      clear: both;    }      </style></head><body>  <h1>JSFuck</h1>    <h2>()+<br>[]!</h2>    <p>JSFuck is an esoteric and educational programming style based on the  atomic parts of JavaScript. It uses only six different characters to  write and execute code.</p>    <p>It does not depend on a browser, so you can even run it on Node.js.</p>    <p>Use the form below to convert your own script. Uncheck "eval source" to  get back a plain string.</p>  <input id="input" type="text" value="alert(1)"/>   <button id="encode" type="text">Encode</button>    <div class="checkbox">    <input id="eval" type="checkbox" checked />    <label for="eval">Eval Source</label>  </div>    <textarea id="output"></textarea>  <div class="actions">    <span id="stats">…</span>    <a id="run" href="#">Run This</a>  </div>    <h3>Links</h3>    <ul>    <li>      Share on       <a href="https://twitter.com/intent/tweet?text=This%20project%20is%20crazy:%20http://jsfuck.com%20%E2%80%93%20Write%20any%20JavaScript%20with%206%20characters%20[]()!+%20//%20via%20@aemkei" target="_blank">Twitter</a>,       <a href="https://plus.google.com/share?url=http://www.jsfuck.com" target="_blank">Google+</a>    </li>    <li>View source on <a href="http://github.com/aemkei/jsfuck">GitHub</a></li>    <li>Follow <a href="http://twitter.com/aemkei">@aemkei</a> (Martin Kleppe)</li>    <li>Original discussion at <a href="http://sla.ckers.org/forum/read.php?24,32930">Sla.ckers.org</a></li>  </ul>    <h3>Alternatives</h3>  <ul>    <li><a href="http://patriciopalladino.com/files/hieroglyphy/">Hieroglyphy</a> (8 chars, browser only)</li>    <li><a href="http://utf-8.jp/public/jsfuck.html">utf-8.jp</a> (broken)</li>    <li><a href="http://discogscounter.getfreehosting.co.uk/js-noalnum.php">JS-NoAlnum</a> (broken)</li>  </ul>    <h3>Basics</h3>    <ul class="pre">    <li>false       =>  ![]</li>    <li>true        =>  !![]</li>    <li>undefined   =>  [][[]]</li>    <li>NaN         =>  +[![]]</li>    <li>0           =>  +[]</li>    <li>1           =>  +!+[]</li>    <li>2           =>  !+[]+!+[]</li>    <li>10          =>  [+!+[]]+[+[]]</li>    <li>Array       =>  []</li>    <li>Number      =>  +[]</li>    <li>String      =>  []+[]</li>    <li>Boolean     =>  ![]</li>    <li>Function    =>  []["filter"]</li>    <li>eval        =>  []["filter"]["constructor"]( CODE )()</li>    <li>window      =>  []["filter"]["constructor"]("return this")()</li>  </ul>  <p>See the full list <a href="https://github.com/aemkei/jsfuck/blob/master/jsfuck.js">here</a>.</p>  <script src="jsfuck.js"></script>  <script>    function $(id){      return document.getElementById(id);    }        function encode(){      var output = JSFuck.encode($("input").value, $("eval").checked);      $("output").value = output;      $("stats").innerHTML = output.length + " chars";    }      $("encode").onclick = encode;    $("eval").onchange = encode;        encode();        $("run").onclick = function(){      value = eval($("output").value);      if (!$("eval").checked){        alert('"' + value + '"');      }      return false;    };  </script>    <script type="text/javascript">    var _gaq = _gaq || [];    _gaq.push(['_setAccount', 'UA-57649-11']);    _gaq.push(['_trackPageview']);    (function() {      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);    })();  </script></body></html>
 |