Skip to content

Instantly share code, notes, and snippets.

@cowboy
Last active May 8, 2025 19:43
Show Gist options
  • Save cowboy/6966747ad374fb97b0ab to your computer and use it in GitHub Desktop.
Save cowboy/6966747ad374fb97b0ab to your computer and use it in GitHub Desktop.
A few JavaScript quines
// Today, I noticed that someone favorited this tweet of mine from 2012:
// https://twitter.com/cowboy/status/232587756486938624
// !function $(){console.log('!'+$+'()')}() #quine
// So I fooled around for a little bit:
// Shortest JavaScript quine?
(function _(){return'('+_+')()'})()
// Have fun with this one!
(function $($_$,_,_$,_$_,$_){return[_=_[$_$](_$[$_++])][_[$_++]][_[$_++]]([][_[$_--]][_[$_++]](_$_,function($$){return _$[$$]||[$_,_$_,_,$_$,$][$_--]},$_++),_[++$_])})('split',',join,call,map',',()\'\\','1821383038303012434430383082',0)
// Test a quine like so:
a= your_quine_code
a===eval(a) // must be true
// Eg.
a= (function _(){return'('+_+')()'})()
a===eval(a) // true
@RixInGithub
Copy link

RixInGithub commented Apr 26, 2025

(function(){
	var h=["(function(){","\tvar h=","\th[1]+=JSON.stringify(h)","\tconsole.log(h.join(\"\\n\"))","})()"]
	h[1]+=JSON.stringify(h)
	console.log(h.join("\n"))
})()

my beautiful quine! technically doesnt read from itself, right? right?

@alexchexes
Copy link

alexchexes commented May 8, 2025

<some>GPT's version, which it managed to glue together after around 71 attempts:

const s = [
  "const s = [",
  "  /* lines will go here */",
  "];",
  "s.forEach((line, i) => console.log(i === 1 ? s.map(l => '  ' + JSON.stringify(l) + ',').join('\\n') : line));"
];
s.forEach((line, i) => console.log(i === 1 ? s.map(l => '  ' + JSON.stringify(l) + ',').join('\n') : line));

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment