..
1.
2.
3.
4.
【日拱一卒】2025-03-02
2025-03-02
符文般的JS
0 = [+[]]+[]
1 = [+!+[]]+[]
10 = [+!+[]]+[+[]]
100 = [+!+[]]+[+[]]+[+[]]
1. 0 = [+[]]+[]
-
[] 是一个空数组。 -
+[] 将空数组转换为数字。空数组转换为数字时是0,所以+[] 的结果是0。 -
[+[]] 将0 放入一个数组中,结果是[0]。 -
[+[]]+[] 将数组[0] 转换为字符串,结果是"0"。
最终结果:"0"(字符串形式的 0)。
2. 1 = [+!+[]]+[]
-
[] 是一个空数组。 -
+[] 将空数组转换为数字,结果是0。 -
!+[] 对0 进行逻辑非运算。0 是假值,所以!0 是true。 -
+!+[] 将true 转换为数字,true 转换为数字是1。 -
[+!+[]] 将1 放入一个数组中,结果是[1]。 -
[+!+[]]+[] 将数组[1] 转换为字符串,结果是"1"。
最终结果:"1"(字符串形式的 1)。
3. 10 = [+!+[]]+[+[]]
-
+!+[] 如前所述,结果是1。 -
[+!+[]] 将1 放入一个数组中,结果是[1]。 -
+[] 如前所述,结果是0。 -
[+[]] 将0 放入一个数组中,结果是[0]。 -
[+!+[]]+[+[]] 将[1] 和[0] 转换为字符串并连接,结果是"10"。
最终结果:"10"(字符串形式的 10)。
4. 100 = [+!+[]]+[+[]]+[+[]]
-
+!+[] 如前所述,结果是1。 -
[+!+[]] 将1 放入一个数组中,结果是[1]。 -
+[] 如前所述,结果是0。 -
[+[]] 将0 放入一个数组中,结果是[0]。 -
[+!+[]]+[+[]]+[+[]] 将[1]、[0] 和[0] 转换为字符串并连接,结果是"100"。
最终结果:"100"(字符串形式的 100)。
总结
这些代码利用了 JavaScript 中的隐式类型转换和运算符的特性,通过将数组、布尔值和数字相互转换,最终生成了字符串形式的数字。虽然这些代码看起来很复杂,但它们展示了 JavaScript 中类型转换的灵活性。
written by mobilephone724