fangwenxue
V2EX  ›  问与答

这是什么转换 js

  •  
  •   fangwenxue · Jul 12, 2020 · 1592 views
    This topic created in 2222 days ago, the information mentioned may be changed or developed.
    r8t0=4536;o5p6=1831;d4j0=7786;a1g7=7290;j0m3=3863;n4a1=9424;g7c3=5384;t0v2=7486;q7k1=4162;e5e5=3839;x4r8r8=0^r8t0;p6h8a1=1^o5p6;a1s9j0=2^d4j0;i9x4l2=3^a1g7;c3q7b2=4^j0m3;v2u1t0=5^n4a1;n4e5y5=6^g7c3;t0m3x4=7^t0v2;f6i9z6=8^q7k1;u1n4k1=9^e5e5;
    console.log((f6i9z6^q7k1)+(x4r8r8^r8t0)+(f6i9z6^q7k1)+(x4r8r8^r8t0))
    

    结果 16

    r8t0=4536;o5p6=1831;d4j0=7786;a1g7=7290;j0m3=3863;n4a1=9424;g7c3=5384;t0v2=7486;q7k1=4162;e5e5=3839;x4r8r8=0^r8t0;p6h8a1=1^o5p6;a1s9j0=2^d4j0;i9x4l2=3^a1g7;c3q7b2=4^j0m3;v2u1t0=5^n4a1;n4e5y5=6^g7c3;t0m3x4=7^t0v2;f6i9z6=8^q7k1;u1n4k1=9^e5e5;
    console.log('' +(f6i9z6^q7k1)+(x4r8r8^r8t0)+(f6i9z6^q7k1)+(x4r8r8^r8t0))
    

    结果 8080

    • 为什么用空字符+后结果变了?这是有什么转换
    3 replies    2020-07-13 09:21:10 +08:00
    wxsm
        1
    wxsm  
       Jul 12, 2020 via iPhone
    加上空字符后变成了字符串运算。
    imdong
        2
    imdong  
       Jul 13, 2020
    代码格式一下就可以看到,这是非常简单的异或运算。

    先随便定义 10 个 随机变量,变量用随机数填充,值是多少不重要。

    然后分别定义 10 个变量,用 0-9 依次与刚才的变量进行异或运算。

    然后在使用的时候,数字对应变量 ^ 对应的随机数,就得到了数字本身...(异或同一个数两次等于啥也没干...)

    毫无技术难度,也就是障眼法而已。

    还原后的代码分别为:`console.log(8 + 0 + 8 + 0);` 和 `console.log('' + 8 + 0 + 8 + 0);`

    至于加个空字符串结果就变了,因为 JS 的特性,自动类型转换,把数字转换成字符串进行 + (连字符)操作了。

    那不就变成了 '' + '8' + '0' + '8' + '0'。
    Yumwey
        3
    Yumwey  
       Jul 13, 2020 via Android
    这是类型转换 js
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1103 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 23:17 · PVG 07:17 · LAX 16:17 · JFK 19:17
    ♥ Do have faith in what you're doing.