Javascript:var%20C与常规var相比意味着什么

Javascript: What does var%20C mean compared to a regular var?

本文关键字:意味着 什么 var 常规 var%20C Javascript      更新时间:2023-09-26

我正在尝试解释别人的代码,而且我对Javascript非常陌生,我一辈子都找不到解释这意味着什么的Javascript教程:

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

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

编辑:代码来自小书签。

这意味着代码已经损坏。正如Kevin B所说,它看起来是部分URL编码的,这不是一件好事(URL编码中的%20=一个空格)。

应该是:

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

如果你让JavaScript引擎解释var%20C = ...,它会抱怨:

SyntaxError: Unexpected token %

回复您的评论:

如果可以解释的话,代码来自bookmarklet。

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

如前所述,代码是url编码的。

你可以对其进行url解码,然后将其恢复为"正常",如下所示:

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

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

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

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

但请记住,eval是危险的,当您不能100%确定正在评估的字符串是否可信和安全时,被视为"邪恶"