也许是太无聊了今天看到别人用javaScript的[]和一些符号弄了个程序,完全看不懂,小研究一下,废话不说,先看代码,前面是javaScript语句,后面是结果

>true                   // true     boolean
>+true                  // 1        number
>[]+true                // "true"   string
>[]                     //  []      object
>+[]                    //  0       number
>[+[]]                  //  [0]     object
>[[]]                   //  [Array[0]]  object
>[[]][+[]]              //  []      object
>[[]][0]                //  []      object
>[[]][+[]] == [[]][0]   //  false
>[[]][+[]] == []        //  false
>[[]][0] == []          //  false
>[] == []               //  false
>++[]                   //  Error
>++[[]][+[]]            //  1       number
>++[[]][+[]]+[+[]]      //  "10"    string
>++[[]][+[]]+[+[]]      //  1       number
>!+[]+!+[]              //  2       number
>+!+[]+(+!+[])          //  2       number
>[][+[]]                //  Error
>[][[]]                 //  undefined   undefined
>[][[]]+[]              //  "undefined" string

个人水平不足,只当是JS特性,可能这是JavaScript编译器的处理结果,因为它们语法上来说是没错的,所以可以编译,但很明显可以看出,"[]"是一个object,被"+"会变成string,被"!"后会变成boolean,而boolean被+后变成number!,而可以转化为number的string与number相加会变成string,相减会变成number!

虽然很无聊,也不完全没有实用性,唯一能想到的实用就是装B,写的代码让别人完全看不懂。比如我就装B一下:打开你的开发人员工具Console面板,输入代码 (![]+[])[+!+[]]+([][[]]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+((+!+[]+[+[]])-(!+[]+!+[]))+(!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]) 执行的结果是我的帐号"ada87",也可以用(![]+[])[+!+[]]+([][[]]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[])+(!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]),还可以有多种方法,结果是一样的,当然你不一定能学我,目前好像只能打出这几个字母a d e f i l n r s t u 与数字的组合,具体原因可以自己去想。