Javascript:与常规var相比,var%20C的含义是什么?

时间:2015-03-25 18:11:20

标签: javascript

我正在尝试解释其他人的代码并且对Javascript很新,我不能在我的生活中找到一个解释这意味着什么的Javascript教程:

var%20C = 'ABC...', a=123, b=456, ...;

什么是var%20C,它与常规var有何不同?

编辑:代码来自小书签。

2 个答案:

答案 0 :(得分:4)

这意味着代码已被破坏。作为Kevin B said,它看起来像是部分URL编码,这不是一件好事(URL编码中的%20 =空格)。

那应该是:

var C = 'ABC...', a=123, b=456/*, ...*/;

如果您要求JavaScript引擎解释var%20C = ...,它会抱怨:

  

SyntaxError: Unexpected token %

重新your comment

  

如果解释了任何内容,代码来自书签。

这解释了一切!代码将在运行之前被解码,因此%20将在JavaScript引擎看到之前变回空间。

答案 1 :(得分:1)

正如已经指出的那样,代码是url编码的。

您可以对其进行网址解码并将其转回"正常"像这样:

decodeURIComponent("var%20C = 'ABC...', a=123, b=456;");

如果您 100%确定您正在评估的字符串是可信且安全的(如果您编写它,请阅读:)您可以像这样运行它:

eval(decodeURIComponent("var%20C = 'ABC...', a=123, b=456;"));

之后,变量Cab将被初始化。

请记住 eval是危险的考虑"邪恶" 当你不能100%时确保您评估的字符串是可信且安全的。