我有興趣瞭解JavaScript的內部結構。我嘗試閱讀SpiderMonkey和Rhino的源代碼,但將頭部纏繞起來相當複雜。爲什麼(![] + [])[+ !! [] + []]產生「a」
我想問的原因是:爲什麼像
(![]+[])[+!![]+[]]
農產品"a"
(Å=[],[µ=!Å+Å][µ[È=++Å+Å+Å]+({}+Å)[Ç=!!Å+µ,ª=Ç[Å]+Ç[+!Å],Å]+ª])()[µ[Å]+µ[Å+Å]+Ç[È]+ª](Å)
產生alert(1)
?
來源:http://sla.ckers.org/forum/read.php?24,32930,page=1。
在這個論壇上還有很多關於JavaScript古怪的例子,我想知道它是如何從編程的角度來看web應用程序的安全性。
如果你有興趣在語言是如何工作的,沒有什麼比寫一個編譯器爲它自己 - 這基本上都會教你的語言,它的內部。 – Chii 2010-01-20 09:50:26
感謝您的回覆。我知道Javascript做了一些魔術,但它所做的一些事情是危險的...... – prafulfillment 2010-01-20 18:20:07