Perlの書き込み専用と JS書き込み専用

長谷川洋介によるこの小さなJavaScriptは、アラート(1)を実行します。

(É= [Å= []、μ=!Å+Å] [μ[È=-〜-〜++Å] +({} +Å)[Ç= !!Å+μ、ª=Ç[Å ] + [+!Å]、Å] +ª])()[μ[Å] +μ[Å+Å] +Ç[È] +ª](Å)



どのように機能しますか?





簡単にするために、

Å-> Int_1

É-> f_sort

È-> Int_3

µ-> B_false

ª-> Str_rt

Ç-> Str_truefalse



取得するもの:

(f_sort = [Int_1 = []、B_false =!Int_1 + Int_1] [B_false [Int_3 =-〜-〜++ Int_1] +({} + Int_1)[Str_truefalse = !! Int_1 + B_false、Str_rt = Str_truefalse [Int_1 ] + Str_truefalse [+!Int_1]、Int_1] + Str_rt])()[B_false [Int_1] + B_false [Int_1 + Int_1] + Str_truefalse [Int_3] + Str_rt](Int_1)



書式:

  1. ( f_sort = [ Int_1 = [ ] , B_false = ! Int_1 + Int_1 // B_false = ![]+[] = false ] // [[],false] [ B_false [ Int_3 = - ~ - ~ ++ Int_1 // ++Int_3 = 3 ([].toInt() -> 0, ++0 = 1, ~1 -> -2, --2 -> 2, ~2->-3, --3 = 3), Int_1 = 1 ] // 'false'[3] = 's' + ( { } + Int_1 ) // {} cast to string -> '[object Object]' + 1 -> '[object Object]1' [ Str_truefalse = !! Int_1 + B_false , // !!Int_1 -> true, Str_truefalse = true + false = 'truefalse' Str_rt = Str_truefalse [ Int_1 ] + Str_truefalse [ +! Int_1 ] , // Str_rt = 'truefalse'[1] + 'truefalse'[0] = 'rt' Int_1 // 1 ] //'[object Object]1'['truefalse', 'rt',1] -> 'o' ('[object Object]1'[1]) + Str_rt ] // [][ 's'+'o'+'rt'] -> [].sort ) ( ) // (f_sort = [].sort)() -> [].sort.call() -> window [ B_false [ Int_1 ] + // 'false'[1] -> 'a' B_false [ Int_1 + Int_1 ] + // 'false'[2] -> 'l' Str_truefalse [ Int_3 ] + // 'truefalse'[3] -> 'e' Str_rt // 'rt' ] // ['alert'] ( Int_1 ) // window['alert'](1)



  2. ( f_sort = [ Int_1 = [ ] , B_false = ! Int_1 + Int_1 // B_false = ![]+[] = false ] // [[],false] [ B_false [ Int_3 = - ~ - ~ ++ Int_1 // ++Int_3 = 3 ([].toInt() -> 0, ++0 = 1, ~1 -> -2, --2 -> 2, ~2->-3, --3 = 3), Int_1 = 1 ] // 'false'[3] = 's' + ( { } + Int_1 ) // {} cast to string -> '[object Object]' + 1 -> '[object Object]1' [ Str_truefalse = !! Int_1 + B_false , // !!Int_1 -> true, Str_truefalse = true + false = 'truefalse' Str_rt = Str_truefalse [ Int_1 ] + Str_truefalse [ +! Int_1 ] , // Str_rt = 'truefalse'[1] + 'truefalse'[0] = 'rt' Int_1 // 1 ] //'[object Object]1'['truefalse', 'rt',1] -> 'o' ('[object Object]1'[1]) + Str_rt ] // [][ 's'+'o'+'rt'] -> [].sort ) ( ) // (f_sort = [].sort)() -> [].sort.call() -> window [ B_false [ Int_1 ] + // 'false'[1] -> 'a' B_false [ Int_1 + Int_1 ] + // 'false'[2] -> 'l' Str_truefalse [ Int_3 ] + // 'truefalse'[3] -> 'e' Str_rt // 'rt' ] // ['alert'] ( Int_1 ) // window['alert'](1)



  3. ( f_sort = [ Int_1 = [ ] , B_false = ! Int_1 + Int_1 // B_false = ![]+[] = false ] // [[],false] [ B_false [ Int_3 = - ~ - ~ ++ Int_1 // ++Int_3 = 3 ([].toInt() -> 0, ++0 = 1, ~1 -> -2, --2 -> 2, ~2->-3, --3 = 3), Int_1 = 1 ] // 'false'[3] = 's' + ( { } + Int_1 ) // {} cast to string -> '[object Object]' + 1 -> '[object Object]1' [ Str_truefalse = !! Int_1 + B_false , // !!Int_1 -> true, Str_truefalse = true + false = 'truefalse' Str_rt = Str_truefalse [ Int_1 ] + Str_truefalse [ +! Int_1 ] , // Str_rt = 'truefalse'[1] + 'truefalse'[0] = 'rt' Int_1 // 1 ] //'[object Object]1'['truefalse', 'rt',1] -> 'o' ('[object Object]1'[1]) + Str_rt ] // [][ 's'+'o'+'rt'] -> [].sort ) ( ) // (f_sort = [].sort)() -> [].sort.call() -> window [ B_false [ Int_1 ] + // 'false'[1] -> 'a' B_false [ Int_1 + Int_1 ] + // 'false'[2] -> 'l' Str_truefalse [ Int_3 ] + // 'truefalse'[3] -> 'e' Str_rt // 'rt' ] // ['alert'] ( Int_1 ) // window['alert'](1)



  4. ( f_sort = [ Int_1 = [ ] , B_false = ! Int_1 + Int_1 // B_false = ![]+[] = false ] // [[],false] [ B_false [ Int_3 = - ~ - ~ ++ Int_1 // ++Int_3 = 3 ([].toInt() -> 0, ++0 = 1, ~1 -> -2, --2 -> 2, ~2->-3, --3 = 3), Int_1 = 1 ] // 'false'[3] = 's' + ( { } + Int_1 ) // {} cast to string -> '[object Object]' + 1 -> '[object Object]1' [ Str_truefalse = !! Int_1 + B_false , // !!Int_1 -> true, Str_truefalse = true + false = 'truefalse' Str_rt = Str_truefalse [ Int_1 ] + Str_truefalse [ +! Int_1 ] , // Str_rt = 'truefalse'[1] + 'truefalse'[0] = 'rt' Int_1 // 1 ] //'[object Object]1'['truefalse', 'rt',1] -> 'o' ('[object Object]1'[1]) + Str_rt ] // [][ 's'+'o'+'rt'] -> [].sort ) ( ) // (f_sort = [].sort)() -> [].sort.call() -> window [ B_false [ Int_1 ] + // 'false'[1] -> 'a' B_false [ Int_1 + Int_1 ] + // 'false'[2] -> 'l' Str_truefalse [ Int_3 ] + // 'truefalse'[3] -> 'e' Str_rt // 'rt' ] // ['alert'] ( Int_1 ) // window['alert'](1)



  5. ( f_sort = [ Int_1 = [ ] , B_false = ! Int_1 + Int_1 // B_false = ![]+[] = false ] // [[],false] [ B_false [ Int_3 = - ~ - ~ ++ Int_1 // ++Int_3 = 3 ([].toInt() -> 0, ++0 = 1, ~1 -> -2, --2 -> 2, ~2->-3, --3 = 3), Int_1 = 1 ] // 'false'[3] = 's' + ( { } + Int_1 ) // {} cast to string -> '[object Object]' + 1 -> '[object Object]1' [ Str_truefalse = !! Int_1 + B_false , // !!Int_1 -> true, Str_truefalse = true + false = 'truefalse' Str_rt = Str_truefalse [ Int_1 ] + Str_truefalse [ +! Int_1 ] , // Str_rt = 'truefalse'[1] + 'truefalse'[0] = 'rt' Int_1 // 1 ] //'[object Object]1'['truefalse', 'rt',1] -> 'o' ('[object Object]1'[1]) + Str_rt ] // [][ 's'+'o'+'rt'] -> [].sort ) ( ) // (f_sort = [].sort)() -> [].sort.call() -> window [ B_false [ Int_1 ] + // 'false'[1] -> 'a' B_false [ Int_1 + Int_1 ] + // 'false'[2] -> 'l' Str_truefalse [ Int_3 ] + // 'truefalse'[3] -> 'e' Str_rt // 'rt' ] // ['alert'] ( Int_1 ) // window['alert'](1)



  6. ( f_sort = [ Int_1 = [ ] , B_false = ! Int_1 + Int_1 // B_false = ![]+[] = false ] // [[],false] [ B_false [ Int_3 = - ~ - ~ ++ Int_1 // ++Int_3 = 3 ([].toInt() -> 0, ++0 = 1, ~1 -> -2, --2 -> 2, ~2->-3, --3 = 3), Int_1 = 1 ] // 'false'[3] = 's' + ( { } + Int_1 ) // {} cast to string -> '[object Object]' + 1 -> '[object Object]1' [ Str_truefalse = !! Int_1 + B_false , // !!Int_1 -> true, Str_truefalse = true + false = 'truefalse' Str_rt = Str_truefalse [ Int_1 ] + Str_truefalse [ +! Int_1 ] , // Str_rt = 'truefalse'[1] + 'truefalse'[0] = 'rt' Int_1 // 1 ] //'[object Object]1'['truefalse', 'rt',1] -> 'o' ('[object Object]1'[1]) + Str_rt ] // [][ 's'+'o'+'rt'] -> [].sort ) ( ) // (f_sort = [].sort)() -> [].sort.call() -> window [ B_false [ Int_1 ] + // 'false'[1] -> 'a' B_false [ Int_1 + Int_1 ] + // 'false'[2] -> 'l' Str_truefalse [ Int_3 ] + // 'truefalse'[3] -> 'e' Str_rt // 'rt' ] // ['alert'] ( Int_1 ) // window['alert'](1)



  7. ( f_sort = [ Int_1 = [ ] , B_false = ! Int_1 + Int_1 // B_false = ![]+[] = false ] // [[],false] [ B_false [ Int_3 = - ~ - ~ ++ Int_1 // ++Int_3 = 3 ([].toInt() -> 0, ++0 = 1, ~1 -> -2, --2 -> 2, ~2->-3, --3 = 3), Int_1 = 1 ] // 'false'[3] = 's' + ( { } + Int_1 ) // {} cast to string -> '[object Object]' + 1 -> '[object Object]1' [ Str_truefalse = !! Int_1 + B_false , // !!Int_1 -> true, Str_truefalse = true + false = 'truefalse' Str_rt = Str_truefalse [ Int_1 ] + Str_truefalse [ +! Int_1 ] , // Str_rt = 'truefalse'[1] + 'truefalse'[0] = 'rt' Int_1 // 1 ] //'[object Object]1'['truefalse', 'rt',1] -> 'o' ('[object Object]1'[1]) + Str_rt ] // [][ 's'+'o'+'rt'] -> [].sort ) ( ) // (f_sort = [].sort)() -> [].sort.call() -> window [ B_false [ Int_1 ] + // 'false'[1] -> 'a' B_false [ Int_1 + Int_1 ] + // 'false'[2] -> 'l' Str_truefalse [ Int_3 ] + // 'truefalse'[3] -> 'e' Str_rt // 'rt' ] // ['alert'] ( Int_1 ) // window['alert'](1)



  8. ( f_sort = [ Int_1 = [ ] , B_false = ! Int_1 + Int_1 // B_false = ![]+[] = false ] // [[],false] [ B_false [ Int_3 = - ~ - ~ ++ Int_1 // ++Int_3 = 3 ([].toInt() -> 0, ++0 = 1, ~1 -> -2, --2 -> 2, ~2->-3, --3 = 3), Int_1 = 1 ] // 'false'[3] = 's' + ( { } + Int_1 ) // {} cast to string -> '[object Object]' + 1 -> '[object Object]1' [ Str_truefalse = !! Int_1 + B_false , // !!Int_1 -> true, Str_truefalse = true + false = 'truefalse' Str_rt = Str_truefalse [ Int_1 ] + Str_truefalse [ +! Int_1 ] , // Str_rt = 'truefalse'[1] + 'truefalse'[0] = 'rt' Int_1 // 1 ] //'[object Object]1'['truefalse', 'rt',1] -> 'o' ('[object Object]1'[1]) + Str_rt ] // [][ 's'+'o'+'rt'] -> [].sort ) ( ) // (f_sort = [].sort)() -> [].sort.call() -> window [ B_false [ Int_1 ] + // 'false'[1] -> 'a' B_false [ Int_1 + Int_1 ] + // 'false'[2] -> 'l' Str_truefalse [ Int_3 ] + // 'truefalse'[3] -> 'e' Str_rt // 'rt' ] // ['alert'] ( Int_1 ) // window['alert'](1)



  9. ( f_sort = [ Int_1 = [ ] , B_false = ! Int_1 + Int_1 // B_false = ![]+[] = false ] // [[],false] [ B_false [ Int_3 = - ~ - ~ ++ Int_1 // ++Int_3 = 3 ([].toInt() -> 0, ++0 = 1, ~1 -> -2, --2 -> 2, ~2->-3, --3 = 3), Int_1 = 1 ] // 'false'[3] = 's' + ( { } + Int_1 ) // {} cast to string -> '[object Object]' + 1 -> '[object Object]1' [ Str_truefalse = !! Int_1 + B_false , // !!Int_1 -> true, Str_truefalse = true + false = 'truefalse' Str_rt = Str_truefalse [ Int_1 ] + Str_truefalse [ +! Int_1 ] , // Str_rt = 'truefalse'[1] + 'truefalse'[0] = 'rt' Int_1 // 1 ] //'[object Object]1'['truefalse', 'rt',1] -> 'o' ('[object Object]1'[1]) + Str_rt ] // [][ 's'+'o'+'rt'] -> [].sort ) ( ) // (f_sort = [].sort)() -> [].sort.call() -> window [ B_false [ Int_1 ] + // 'false'[1] -> 'a' B_false [ Int_1 + Int_1 ] + // 'false'[2] -> 'l' Str_truefalse [ Int_3 ] + // 'truefalse'[3] -> 'e' Str_rt // 'rt' ] // ['alert'] ( Int_1 ) // window['alert'](1)



  10. ( f_sort = [ Int_1 = [ ] , B_false = ! Int_1 + Int_1 // B_false = ![]+[] = false ] // [[],false] [ B_false [ Int_3 = - ~ - ~ ++ Int_1 // ++Int_3 = 3 ([].toInt() -> 0, ++0 = 1, ~1 -> -2, --2 -> 2, ~2->-3, --3 = 3), Int_1 = 1 ] // 'false'[3] = 's' + ( { } + Int_1 ) // {} cast to string -> '[object Object]' + 1 -> '[object Object]1' [ Str_truefalse = !! Int_1 + B_false , // !!Int_1 -> true, Str_truefalse = true + false = 'truefalse' Str_rt = Str_truefalse [ Int_1 ] + Str_truefalse [ +! Int_1 ] , // Str_rt = 'truefalse'[1] + 'truefalse'[0] = 'rt' Int_1 // 1 ] //'[object Object]1'['truefalse', 'rt',1] -> 'o' ('[object Object]1'[1]) + Str_rt ] // [][ 's'+'o'+'rt'] -> [].sort ) ( ) // (f_sort = [].sort)() -> [].sort.call() -> window [ B_false [ Int_1 ] + // 'false'[1] -> 'a' B_false [ Int_1 + Int_1 ] + // 'false'[2] -> 'l' Str_truefalse [ Int_3 ] + // 'truefalse'[3] -> 'e' Str_rt // 'rt' ] // ['alert'] ( Int_1 ) // window['alert'](1)



  11. ( f_sort = [ Int_1 = [ ] , B_false = ! Int_1 + Int_1 // B_false = ![]+[] = false ] // [[],false] [ B_false [ Int_3 = - ~ - ~ ++ Int_1 // ++Int_3 = 3 ([].toInt() -> 0, ++0 = 1, ~1 -> -2, --2 -> 2, ~2->-3, --3 = 3), Int_1 = 1 ] // 'false'[3] = 's' + ( { } + Int_1 ) // {} cast to string -> '[object Object]' + 1 -> '[object Object]1' [ Str_truefalse = !! Int_1 + B_false , // !!Int_1 -> true, Str_truefalse = true + false = 'truefalse' Str_rt = Str_truefalse [ Int_1 ] + Str_truefalse [ +! Int_1 ] , // Str_rt = 'truefalse'[1] + 'truefalse'[0] = 'rt' Int_1 // 1 ] //'[object Object]1'['truefalse', 'rt',1] -> 'o' ('[object Object]1'[1]) + Str_rt ] // [][ 's'+'o'+'rt'] -> [].sort ) ( ) // (f_sort = [].sort)() -> [].sort.call() -> window [ B_false [ Int_1 ] + // 'false'[1] -> 'a' B_false [ Int_1 + Int_1 ] + // 'false'[2] -> 'l' Str_truefalse [ Int_3 ] + // 'truefalse'[3] -> 'e' Str_rt // 'rt' ] // ['alert'] ( Int_1 ) // window['alert'](1)



  12. ( f_sort = [ Int_1 = [ ] , B_false = ! Int_1 + Int_1 // B_false = ![]+[] = false ] // [[],false] [ B_false [ Int_3 = - ~ - ~ ++ Int_1 // ++Int_3 = 3 ([].toInt() -> 0, ++0 = 1, ~1 -> -2, --2 -> 2, ~2->-3, --3 = 3), Int_1 = 1 ] // 'false'[3] = 's' + ( { } + Int_1 ) // {} cast to string -> '[object Object]' + 1 -> '[object Object]1' [ Str_truefalse = !! Int_1 + B_false , // !!Int_1 -> true, Str_truefalse = true + false = 'truefalse' Str_rt = Str_truefalse [ Int_1 ] + Str_truefalse [ +! Int_1 ] , // Str_rt = 'truefalse'[1] + 'truefalse'[0] = 'rt' Int_1 // 1 ] //'[object Object]1'['truefalse', 'rt',1] -> 'o' ('[object Object]1'[1]) + Str_rt ] // [][ 's'+'o'+'rt'] -> [].sort ) ( ) // (f_sort = [].sort)() -> [].sort.call() -> window [ B_false [ Int_1 ] + // 'false'[1] -> 'a' B_false [ Int_1 + Int_1 ] + // 'false'[2] -> 'l' Str_truefalse [ Int_3 ] + // 'truefalse'[3] -> 'e' Str_rt // 'rt' ] // ['alert'] ( Int_1 ) // window['alert'](1)



  13. ( f_sort = [ Int_1 = [ ] , B_false = ! Int_1 + Int_1 // B_false = ![]+[] = false ] // [[],false] [ B_false [ Int_3 = - ~ - ~ ++ Int_1 // ++Int_3 = 3 ([].toInt() -> 0, ++0 = 1, ~1 -> -2, --2 -> 2, ~2->-3, --3 = 3), Int_1 = 1 ] // 'false'[3] = 's' + ( { } + Int_1 ) // {} cast to string -> '[object Object]' + 1 -> '[object Object]1' [ Str_truefalse = !! Int_1 + B_false , // !!Int_1 -> true, Str_truefalse = true + false = 'truefalse' Str_rt = Str_truefalse [ Int_1 ] + Str_truefalse [ +! Int_1 ] , // Str_rt = 'truefalse'[1] + 'truefalse'[0] = 'rt' Int_1 // 1 ] //'[object Object]1'['truefalse', 'rt',1] -> 'o' ('[object Object]1'[1]) + Str_rt ] // [][ 's'+'o'+'rt'] -> [].sort ) ( ) // (f_sort = [].sort)() -> [].sort.call() -> window [ B_false [ Int_1 ] + // 'false'[1] -> 'a' B_false [ Int_1 + Int_1 ] + // 'false'[2] -> 'l' Str_truefalse [ Int_3 ] + // 'truefalse'[3] -> 'e' Str_rt // 'rt' ] // ['alert'] ( Int_1 ) // window['alert'](1)



  14. ( f_sort = [ Int_1 = [ ] , B_false = ! Int_1 + Int_1 // B_false = ![]+[] = false ] // [[],false] [ B_false [ Int_3 = - ~ - ~ ++ Int_1 // ++Int_3 = 3 ([].toInt() -> 0, ++0 = 1, ~1 -> -2, --2 -> 2, ~2->-3, --3 = 3), Int_1 = 1 ] // 'false'[3] = 's' + ( { } + Int_1 ) // {} cast to string -> '[object Object]' + 1 -> '[object Object]1' [ Str_truefalse = !! Int_1 + B_false , // !!Int_1 -> true, Str_truefalse = true + false = 'truefalse' Str_rt = Str_truefalse [ Int_1 ] + Str_truefalse [ +! Int_1 ] , // Str_rt = 'truefalse'[1] + 'truefalse'[0] = 'rt' Int_1 // 1 ] //'[object Object]1'['truefalse', 'rt',1] -> 'o' ('[object Object]1'[1]) + Str_rt ] // [][ 's'+'o'+'rt'] -> [].sort ) ( ) // (f_sort = [].sort)() -> [].sort.call() -> window [ B_false [ Int_1 ] + // 'false'[1] -> 'a' B_false [ Int_1 + Int_1 ] + // 'false'[2] -> 'l' Str_truefalse [ Int_3 ] + // 'truefalse'[3] -> 'e' Str_rt // 'rt' ] // ['alert'] ( Int_1 ) // window['alert'](1)



  15. ( f_sort = [ Int_1 = [ ] , B_false = ! Int_1 + Int_1 // B_false = ![]+[] = false ] // [[],false] [ B_false [ Int_3 = - ~ - ~ ++ Int_1 // ++Int_3 = 3 ([].toInt() -> 0, ++0 = 1, ~1 -> -2, --2 -> 2, ~2->-3, --3 = 3), Int_1 = 1 ] // 'false'[3] = 's' + ( { } + Int_1 ) // {} cast to string -> '[object Object]' + 1 -> '[object Object]1' [ Str_truefalse = !! Int_1 + B_false , // !!Int_1 -> true, Str_truefalse = true + false = 'truefalse' Str_rt = Str_truefalse [ Int_1 ] + Str_truefalse [ +! Int_1 ] , // Str_rt = 'truefalse'[1] + 'truefalse'[0] = 'rt' Int_1 // 1 ] //'[object Object]1'['truefalse', 'rt',1] -> 'o' ('[object Object]1'[1]) + Str_rt ] // [][ 's'+'o'+'rt'] -> [].sort ) ( ) // (f_sort = [].sort)() -> [].sort.call() -> window [ B_false [ Int_1 ] + // 'false'[1] -> 'a' B_false [ Int_1 + Int_1 ] + // 'false'[2] -> 'l' Str_truefalse [ Int_3 ] + // 'truefalse'[3] -> 'e' Str_rt // 'rt' ] // ['alert'] ( Int_1 ) // window['alert'](1)



  16. ( f_sort = [ Int_1 = [ ] , B_false = ! Int_1 + Int_1 // B_false = ![]+[] = false ] // [[],false] [ B_false [ Int_3 = - ~ - ~ ++ Int_1 // ++Int_3 = 3 ([].toInt() -> 0, ++0 = 1, ~1 -> -2, --2 -> 2, ~2->-3, --3 = 3), Int_1 = 1 ] // 'false'[3] = 's' + ( { } + Int_1 ) // {} cast to string -> '[object Object]' + 1 -> '[object Object]1' [ Str_truefalse = !! Int_1 + B_false , // !!Int_1 -> true, Str_truefalse = true + false = 'truefalse' Str_rt = Str_truefalse [ Int_1 ] + Str_truefalse [ +! Int_1 ] , // Str_rt = 'truefalse'[1] + 'truefalse'[0] = 'rt' Int_1 // 1 ] //'[object Object]1'['truefalse', 'rt',1] -> 'o' ('[object Object]1'[1]) + Str_rt ] // [][ 's'+'o'+'rt'] -> [].sort ) ( ) // (f_sort = [].sort)() -> [].sort.call() -> window [ B_false [ Int_1 ] + // 'false'[1] -> 'a' B_false [ Int_1 + Int_1 ] + // 'false'[2] -> 'l' Str_truefalse [ Int_3 ] + // 'truefalse'[3] -> 'e' Str_rt // 'rt' ] // ['alert'] ( Int_1 ) // window['alert'](1)



  17. ( f_sort = [ Int_1 = [ ] , B_false = ! Int_1 + Int_1 // B_false = ![]+[] = false ] // [[],false] [ B_false [ Int_3 = - ~ - ~ ++ Int_1 // ++Int_3 = 3 ([].toInt() -> 0, ++0 = 1, ~1 -> -2, --2 -> 2, ~2->-3, --3 = 3), Int_1 = 1 ] // 'false'[3] = 's' + ( { } + Int_1 ) // {} cast to string -> '[object Object]' + 1 -> '[object Object]1' [ Str_truefalse = !! Int_1 + B_false , // !!Int_1 -> true, Str_truefalse = true + false = 'truefalse' Str_rt = Str_truefalse [ Int_1 ] + Str_truefalse [ +! Int_1 ] , // Str_rt = 'truefalse'[1] + 'truefalse'[0] = 'rt' Int_1 // 1 ] //'[object Object]1'['truefalse', 'rt',1] -> 'o' ('[object Object]1'[1]) + Str_rt ] // [][ 's'+'o'+'rt'] -> [].sort ) ( ) // (f_sort = [].sort)() -> [].sort.call() -> window [ B_false [ Int_1 ] + // 'false'[1] -> 'a' B_false [ Int_1 + Int_1 ] + // 'false'[2] -> 'l' Str_truefalse [ Int_3 ] + // 'truefalse'[3] -> 'e' Str_rt // 'rt' ] // ['alert'] ( Int_1 ) // window['alert'](1)



  18. ( f_sort = [ Int_1 = [ ] , B_false = ! Int_1 + Int_1 // B_false = ![]+[] = false ] // [[],false] [ B_false [ Int_3 = - ~ - ~ ++ Int_1 // ++Int_3 = 3 ([].toInt() -> 0, ++0 = 1, ~1 -> -2, --2 -> 2, ~2->-3, --3 = 3), Int_1 = 1 ] // 'false'[3] = 's' + ( { } + Int_1 ) // {} cast to string -> '[object Object]' + 1 -> '[object Object]1' [ Str_truefalse = !! Int_1 + B_false , // !!Int_1 -> true, Str_truefalse = true + false = 'truefalse' Str_rt = Str_truefalse [ Int_1 ] + Str_truefalse [ +! Int_1 ] , // Str_rt = 'truefalse'[1] + 'truefalse'[0] = 'rt' Int_1 // 1 ] //'[object Object]1'['truefalse', 'rt',1] -> 'o' ('[object Object]1'[1]) + Str_rt ] // [][ 's'+'o'+'rt'] -> [].sort ) ( ) // (f_sort = [].sort)() -> [].sort.call() -> window [ B_false [ Int_1 ] + // 'false'[1] -> 'a' B_false [ Int_1 + Int_1 ] + // 'false'[2] -> 'l' Str_truefalse [ Int_3 ] + // 'truefalse'[3] -> 'e' Str_rt // 'rt' ] // ['alert'] ( Int_1 ) // window['alert'](1)



  19. ( f_sort = [ Int_1 = [ ] , B_false = ! Int_1 + Int_1 // B_false = ![]+[] = false ] // [[],false] [ B_false [ Int_3 = - ~ - ~ ++ Int_1 // ++Int_3 = 3 ([].toInt() -> 0, ++0 = 1, ~1 -> -2, --2 -> 2, ~2->-3, --3 = 3), Int_1 = 1 ] // 'false'[3] = 's' + ( { } + Int_1 ) // {} cast to string -> '[object Object]' + 1 -> '[object Object]1' [ Str_truefalse = !! Int_1 + B_false , // !!Int_1 -> true, Str_truefalse = true + false = 'truefalse' Str_rt = Str_truefalse [ Int_1 ] + Str_truefalse [ +! Int_1 ] , // Str_rt = 'truefalse'[1] + 'truefalse'[0] = 'rt' Int_1 // 1 ] //'[object Object]1'['truefalse', 'rt',1] -> 'o' ('[object Object]1'[1]) + Str_rt ] // [][ 's'+'o'+'rt'] -> [].sort ) ( ) // (f_sort = [].sort)() -> [].sort.call() -> window [ B_false [ Int_1 ] + // 'false'[1] -> 'a' B_false [ Int_1 + Int_1 ] + // 'false'[2] -> 'l' Str_truefalse [ Int_3 ] + // 'truefalse'[3] -> 'e' Str_rt // 'rt' ] // ['alert'] ( Int_1 ) // window['alert'](1)



  20. ( f_sort = [ Int_1 = [ ] , B_false = ! Int_1 + Int_1 // B_false = ![]+[] = false ] // [[],false] [ B_false [ Int_3 = - ~ - ~ ++ Int_1 // ++Int_3 = 3 ([].toInt() -> 0, ++0 = 1, ~1 -> -2, --2 -> 2, ~2->-3, --3 = 3), Int_1 = 1 ] // 'false'[3] = 's' + ( { } + Int_1 ) // {} cast to string -> '[object Object]' + 1 -> '[object Object]1' [ Str_truefalse = !! Int_1 + B_false , // !!Int_1 -> true, Str_truefalse = true + false = 'truefalse' Str_rt = Str_truefalse [ Int_1 ] + Str_truefalse [ +! Int_1 ] , // Str_rt = 'truefalse'[1] + 'truefalse'[0] = 'rt' Int_1 // 1 ] //'[object Object]1'['truefalse', 'rt',1] -> 'o' ('[object Object]1'[1]) + Str_rt ] // [][ 's'+'o'+'rt'] -> [].sort ) ( ) // (f_sort = [].sort)() -> [].sort.call() -> window [ B_false [ Int_1 ] + // 'false'[1] -> 'a' B_false [ Int_1 + Int_1 ] + // 'false'[2] -> 'l' Str_truefalse [ Int_3 ] + // 'truefalse'[3] -> 'e' Str_rt // 'rt' ] // ['alert'] ( Int_1 ) // window['alert'](1)



  21. ( f_sort = [ Int_1 = [ ] , B_false = ! Int_1 + Int_1 // B_false = ![]+[] = false ] // [[],false] [ B_false [ Int_3 = - ~ - ~ ++ Int_1 // ++Int_3 = 3 ([].toInt() -> 0, ++0 = 1, ~1 -> -2, --2 -> 2, ~2->-3, --3 = 3), Int_1 = 1 ] // 'false'[3] = 's' + ( { } + Int_1 ) // {} cast to string -> '[object Object]' + 1 -> '[object Object]1' [ Str_truefalse = !! Int_1 + B_false , // !!Int_1 -> true, Str_truefalse = true + false = 'truefalse' Str_rt = Str_truefalse [ Int_1 ] + Str_truefalse [ +! Int_1 ] , // Str_rt = 'truefalse'[1] + 'truefalse'[0] = 'rt' Int_1 // 1 ] //'[object Object]1'['truefalse', 'rt',1] -> 'o' ('[object Object]1'[1]) + Str_rt ] // [][ 's'+'o'+'rt'] -> [].sort ) ( ) // (f_sort = [].sort)() -> [].sort.call() -> window [ B_false [ Int_1 ] + // 'false'[1] -> 'a' B_false [ Int_1 + Int_1 ] + // 'false'[2] -> 'l' Str_truefalse [ Int_3 ] + // 'truefalse'[3] -> 'e' Str_rt // 'rt' ] // ['alert'] ( Int_1 ) // window['alert'](1)



  22. ( f_sort = [ Int_1 = [ ] , B_false = ! Int_1 + Int_1 // B_false = ![]+[] = false ] // [[],false] [ B_false [ Int_3 = - ~ - ~ ++ Int_1 // ++Int_3 = 3 ([].toInt() -> 0, ++0 = 1, ~1 -> -2, --2 -> 2, ~2->-3, --3 = 3), Int_1 = 1 ] // 'false'[3] = 's' + ( { } + Int_1 ) // {} cast to string -> '[object Object]' + 1 -> '[object Object]1' [ Str_truefalse = !! Int_1 + B_false , // !!Int_1 -> true, Str_truefalse = true + false = 'truefalse' Str_rt = Str_truefalse [ Int_1 ] + Str_truefalse [ +! Int_1 ] , // Str_rt = 'truefalse'[1] + 'truefalse'[0] = 'rt' Int_1 // 1 ] //'[object Object]1'['truefalse', 'rt',1] -> 'o' ('[object Object]1'[1]) + Str_rt ] // [][ 's'+'o'+'rt'] -> [].sort ) ( ) // (f_sort = [].sort)() -> [].sort.call() -> window [ B_false [ Int_1 ] + // 'false'[1] -> 'a' B_false [ Int_1 + Int_1 ] + // 'false'[2] -> 'l' Str_truefalse [ Int_3 ] + // 'truefalse'[3] -> 'e' Str_rt // 'rt' ] // ['alert'] ( Int_1 ) // window['alert'](1)



  23. ( f_sort = [ Int_1 = [ ] , B_false = ! Int_1 + Int_1 // B_false = ![]+[] = false ] // [[],false] [ B_false [ Int_3 = - ~ - ~ ++ Int_1 // ++Int_3 = 3 ([].toInt() -> 0, ++0 = 1, ~1 -> -2, --2 -> 2, ~2->-3, --3 = 3), Int_1 = 1 ] // 'false'[3] = 's' + ( { } + Int_1 ) // {} cast to string -> '[object Object]' + 1 -> '[object Object]1' [ Str_truefalse = !! Int_1 + B_false , // !!Int_1 -> true, Str_truefalse = true + false = 'truefalse' Str_rt = Str_truefalse [ Int_1 ] + Str_truefalse [ +! Int_1 ] , // Str_rt = 'truefalse'[1] + 'truefalse'[0] = 'rt' Int_1 // 1 ] //'[object Object]1'['truefalse', 'rt',1] -> 'o' ('[object Object]1'[1]) + Str_rt ] // [][ 's'+'o'+'rt'] -> [].sort ) ( ) // (f_sort = [].sort)() -> [].sort.call() -> window [ B_false [ Int_1 ] + // 'false'[1] -> 'a' B_false [ Int_1 + Int_1 ] + // 'false'[2] -> 'l' Str_truefalse [ Int_3 ] + // 'truefalse'[3] -> 'e' Str_rt // 'rt' ] // ['alert'] ( Int_1 ) // window['alert'](1)



  24. ( f_sort = [ Int_1 = [ ] , B_false = ! Int_1 + Int_1 // B_false = ![]+[] = false ] // [[],false] [ B_false [ Int_3 = - ~ - ~ ++ Int_1 // ++Int_3 = 3 ([].toInt() -> 0, ++0 = 1, ~1 -> -2, --2 -> 2, ~2->-3, --3 = 3), Int_1 = 1 ] // 'false'[3] = 's' + ( { } + Int_1 ) // {} cast to string -> '[object Object]' + 1 -> '[object Object]1' [ Str_truefalse = !! Int_1 + B_false , // !!Int_1 -> true, Str_truefalse = true + false = 'truefalse' Str_rt = Str_truefalse [ Int_1 ] + Str_truefalse [ +! Int_1 ] , // Str_rt = 'truefalse'[1] + 'truefalse'[0] = 'rt' Int_1 // 1 ] //'[object Object]1'['truefalse', 'rt',1] -> 'o' ('[object Object]1'[1]) + Str_rt ] // [][ 's'+'o'+'rt'] -> [].sort ) ( ) // (f_sort = [].sort)() -> [].sort.call() -> window [ B_false [ Int_1 ] + // 'false'[1] -> 'a' B_false [ Int_1 + Int_1 ] + // 'false'[2] -> 'l' Str_truefalse [ Int_3 ] + // 'truefalse'[3] -> 'e' Str_rt // 'rt' ] // ['alert'] ( Int_1 ) // window['alert'](1)



  25. ( f_sort = [ Int_1 = [ ] , B_false = ! Int_1 + Int_1 // B_false = ![]+[] = false ] // [[],false] [ B_false [ Int_3 = - ~ - ~ ++ Int_1 // ++Int_3 = 3 ([].toInt() -> 0, ++0 = 1, ~1 -> -2, --2 -> 2, ~2->-3, --3 = 3), Int_1 = 1 ] // 'false'[3] = 's' + ( { } + Int_1 ) // {} cast to string -> '[object Object]' + 1 -> '[object Object]1' [ Str_truefalse = !! Int_1 + B_false , // !!Int_1 -> true, Str_truefalse = true + false = 'truefalse' Str_rt = Str_truefalse [ Int_1 ] + Str_truefalse [ +! Int_1 ] , // Str_rt = 'truefalse'[1] + 'truefalse'[0] = 'rt' Int_1 // 1 ] //'[object Object]1'['truefalse', 'rt',1] -> 'o' ('[object Object]1'[1]) + Str_rt ] // [][ 's'+'o'+'rt'] -> [].sort ) ( ) // (f_sort = [].sort)() -> [].sort.call() -> window [ B_false [ Int_1 ] + // 'false'[1] -> 'a' B_false [ Int_1 + Int_1 ] + // 'false'[2] -> 'l' Str_truefalse [ Int_3 ] + // 'truefalse'[3] -> 'e' Str_rt // 'rt' ] // ['alert'] ( Int_1 ) // window['alert'](1)







すべてがシンプルで明確です。



All Articles