>1+[[]+[]]-[]+[[]-[]]-1 9
一般に、これがなぜそうなのかを理解することは一見困難です。
[[]+[]]-[]+[[]-[]]==9
思いますか?
そして、ここにはありません:
> [[]+[]]-[]+[[]-[]] "00"
しかし、JSの行に追加すると連結が発生するため、最初の式は99になります。
> 1+"00"-1 99
どうして?
最初から2つのゼロについて分解する必要があります。
> []+[] ""
ここでは、空の配列が空の行になり、折りたたまれたときに空の行が生成されたことは明らかです。
> [""]-[] 0
また、算術的に2番目の空の配列がゼロであり、空の文字列(最初の配列は算術のために縮小される)もゼロであることがわかります。 ゼロマイナスゼロ、それは理にかなっています。 2番目の部分もすぐに明らかになります。
> [[]-[]] [0]
したがって、通常のゼロと配列内のゼロがあり、それらを追加すると、行に縮小されて連結されます。
> 0+[0] "00"
ダブルゼロでは、すべてが明確です。 9はどこから来たのですか?
予想どおり、左から右に追加を読み取ります。
> 1+[[]+[]] "1"
すでに多くの角かっこがわかっています。空の文字列を持つ配列は空の文字列に縮小され、ユニット全体がユニット文字列になりました...
> "1"-[] 1
...そしてゼロを引くと、整数に戻ります。
> 1+[[]-[]] "10"
右側の角括弧のセットは["0"]で、これは配列の文字列表現になり、ユニットに追加されます。ユニットは再びこのための文字列になります。
そして最後の和音は非常に明白です:
> "10"-1 9
そして、結局のところ、すべてが正しいようです...
一般に、人々は、ブラケット、感嘆符、プラスのみを使用してJavascriptインタープリターで完全な言語を作成し、それを使用してeBayの正規表現フィルタリングをバイパスします: http : //thedailywtf.com/articles /セキュリティ上の入札