为什么document.write('\'45');让我拿 %?

时间:2011-03-17 10:40:00

标签: javascript

我的代码如下:

<!DOCTYPE html>
<meta charset="UTF-8">
<title>An HTML5 document</title>
<script>
    document.write('\45');
</script>

结果是我得到'%'。为什么?我无法理解代码。

谢谢!

5 个答案:

答案 0 :(得分:6)

字符%的ASCII值为37。

\45是字符37的八进制转义码(因为4 * 8 + 5 = 37)。

请注意,根据Mozilla Developer Network,不推荐使用字符串文字中八进制转义码的用法:

  

在字符串和正则表达式文字中不推荐使用八进制转义序列(\后跟一个,两个或三个八进制数字)。

答案 1 :(得分:1)

反斜杠(\)用作转义字符。 \45指的是ASCII代码45,即%。如果您希望代码输出\45,则必须通过编写

来转义反斜杠
document.write('\\45');

答案 2 :(得分:1)

%是ASCII代码45 - http://www.robelle.com/smugbook/ascii.html 所以\ 45表示“写出ASCII字符代码45”。

如果你想要文字字符串\ 45写出来,你需要用另一个\

来转义\字符
<script>
        document.write('\\45');
</script>

答案 3 :(得分:0)

\ 45是字符值。 就像你直接看你的记忆一样,这个角色&#34;%&#34;将存储为值45

哪个字符由字符编码决定,如ASCII和UTF-8

A和a之类的东西也有不同的价值观。 A可能是-26的价值,但不确定那里......

答案 4 :(得分:0)

这些是这些值的八进制值: http://www.w3schools.com/TAGS/ref_ascii.asp

增加或减少您的号码,您将获得&符号和单引号。 http://jsfiddle.net/wrd8X/