没有函数调用的模糊代码

时间:2013-04-29 07:55:44

标签: javascript obfuscation

我见过只使用运算符和""来执行复杂字符串运算的代码示例。基本上,这个想法是像((+"+")+"")[+""]这样的东西给你一个字母N,等等。我忘了找到它的地方,而且我没有找到合适的谷歌关键词。有没有人手边有链接?

1 个答案:

答案 0 :(得分:6)

基本上这里使用了两个主要概念:

  1. 从字符串中生成Number,即Number(str),哪个快捷方式为+str;
  2. 字符串化数值,即String(n),哪个快捷方式为n+""
  3. 因此,如果我们彻底看一下表达式,我们会看到:

    +"+"     === NaN
    NaN + "" === "NaN"
    +""      === 0
    "NaN"[0] === "N"
    

    你可以用同样的方式在JavaScript中做很多事情。以下问题提供了一个有趣的例子:What are JavaScript's builtin strings?