我有兴趣了解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