Javascript 的黑魔法 JSFUCK

spin-glob.gif
程式是讓麻瓜恐懼的魔法,那 JSFUCK 作者 Martin Kleppe 寫的 code 肯定是巫師們恐懼的黑魔法了!

Martin Kleppe 利用 Javascript 奇妙的物件特性,將各種資料型別只用 6 種字元取代,例如:

false     => ![]
true      => !![]
undefined => [][[]]
NaN       => +[![]]
0         => +[]
1         => +!+[]
2         => !+[]+!+[]
Array     => []
Number    => +[]
String    => []+[]
Boolean   => ![]

完整列表看這裡

最後可以寫成這麼一大串,竟然有 1227 個字元:

Screen Shot 2015-04-22 at 10.23.18 PM

結果只是「alert(1)」的功能!lol

在他的網站上,可以找到更多用神奇的黑魔法做成的作品,例如最近他在 Twitter 上 po 出的這個「Game of Life」只有 286bytes:

結果吸引到其他黑巫師加入,寫成另外一個只有一半大小 140 bytes 的互動版本,實在是有夠閒的。:p

去年 JSConf.asia 大會上 Martin Kleppe 也去分享了一場 talk「The Art of Less」,簡報放 Speaker Deck 上:

最後他也自問自答「為什麼要這麼做?」「因為爽」!lol

(黑魔法 code 是壞習慣,人家叔叔有練過,小朋友不要學)