console.log('\ x')输出的逻辑是什么,其中x是任意数字?

时间:2019-05-02 13:25:46

标签: javascript node.js

以下示例的输出背后的逻辑是什么

console.log('\272') // -> º

console.log('\364') // -> ô

据我所知,\是javascript中的转义字符,表示它试图转义以下字符,但在第一个示例中,它不等于72的ASCII码,即字符{{1} }。

2 个答案:

答案 0 :(得分:6)

那是因为八进制编码。

  

任何字符代码小于256的字符(即任何字符   扩展的ASCII范围内的字符)可以使用其八进制编码进行转义   字符代码,以开头。 (请注意,这是相同的范围   可以通过十六进制转义符转义的字符。)

     

使用同一示例,版权符号('©')具有字符代码   169,它的八进制表示法为251,因此您可以将其写为   '\ 251'。

您可以看一下这个说明,非常有说明性:https://mathiasbynens.be/notes/javascript-escapes

答案 1 :(得分:1)

它们是八进制值。

您可以找到所有的人here

但是,使用八进制值为deprecated。在严格模式下使用它们会引发SyntaxError。

我建议您使用十六进制代码代替,您可以在提供的链接中找到它:

对于八进制值272,十六进制值为BA。因此,您将使用带有小写字母x的前缀-表示为十六进制值。

console.log('\xBA') // -> º