..

【日拱一卒】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