以下示例的输出背后的逻辑是什么
console.log('\272') // -> º
console.log('\364') // -> ô
据我所知,\
是javascript中的转义字符,表示它试图转义以下字符,但在第一个示例中,它不等于72的ASCII码,即字符{{1} }。
答案 0 :(得分:6)
那是因为八进制编码。
任何字符代码小于256的字符(即任何字符 扩展的ASCII范围内的字符)可以使用其八进制编码进行转义 字符代码,以开头。 (请注意,这是相同的范围 可以通过十六进制转义符转义的字符。)
使用同一示例,版权符号('©')具有字符代码 169,它的八进制表示法为251,因此您可以将其写为 '\ 251'。
您可以看一下这个说明,非常有说明性:https://mathiasbynens.be/notes/javascript-escapes
答案 1 :(得分:1)
它们是八进制值。
您可以找到所有的人here
但是,使用八进制值为deprecated。在严格模式下使用它们会引发SyntaxError。
我建议您使用十六进制代码代替,您可以在提供的链接中找到它:
对于八进制值272,十六进制值为BA。因此,您将使用带有小写字母x
的前缀-表示为十六进制值。
console.log('\xBA') // -> º