Javascript 八进制转义字符(8进制)
作者:
最近在看一些Javascript玩魔术的资料,感叹那些真正的是在玩技术,相当让人佩服。
摸索过程中,看见这样的字符:"\155",用来代替字符"m"。为什么?....完全不知道原因,整个人顿时慌了!可别说自己4年的经验了!"\155"和"m"是全等的,到现在,2011年了我才知道,深感惭愧!
对于字符转义,常见的大概如下:
"\u5230" ==> "到"
"\t" ==> horizontal tab "\u0009"
"\\" ==> backslash "\u005C"
"\x35" ==> "5"
....
155由8进制转为 10进制为 1*64+5*8+5=109
String.fromCharCode(109)==="m"
8进制或16进制转义字符 总共有256个
16进制转义字符 固定格式为(2位数):
\x HexDigit HexDigit
8进制可以有1-3位数,最大为 "\377" ,在ECMA 262V5 里没有找到相关介绍,猜想 求得String value (SV)的方式为以下步骤:
1:得到character values (CV)的长度值为len
2:len=Math.min(len,3)
3:查看转义符后的长度为len的字符,是否符合8进制,符合到第5步,否则第4步
4:len--,到第3步
5:转换得到相应字符s0与len位后的字符相接
"\1568a" ="n8a"
"\0578a" ="/8a"
对于字符转义,常见的大概如下:
"\u5230" ==> "到"
"\t" ==> horizontal tab "\u0009"
"\\" ==> backslash "\u005C"
"\x35" ==> "5"
....
155由8进制转为 10进制为 1*64+5*8+5=109
String.fromCharCode(109)==="m"
8进制或16进制转义字符 总共有256个
16进制转义字符 固定格式为(2位数):
\x HexDigit HexDigit
8进制可以有1-3位数,最大为 "\377" ,在ECMA 262V5 里没有找到相关介绍,猜想 求得String value (SV)的方式为以下步骤:
1:得到character values (CV)的长度值为len
2:len=Math.min(len,3)
3:查看转义符后的长度为len的字符,是否符合8进制,符合到第5步,否则第4步
4:len--,到第3步
5:转换得到相应字符s0与len位后的字符相接
"\1568a" ="n8a"
"\0578a" ="/8a"