- 时间:2021-07-28 00:16 编辑: 来源: 阅读:
- 扫一扫,手机访问
摘要:JavaScript中的16进制字符(改进)
原始的代码:
[url=http://www.1sucai.cn/upload/201111/20111121234258773.png][img]http://files.jb51.net/upload/201111/20111121234258389.png[/img]
[/url]
在Chrome中:
[url=http://www.1sucai.cn/upload/201111/20111121234258135.png][img]http://files.jb51.net/upload/201111/20111121234258659.png[/img]
[/url]
再补充另外一点收获吧。其实在做这个解析被我替换后的字符时,我最初的想法是将"\"这个字符在替换回"%",然后再用unescape这个解码函数来解析字符。然而,当我在我想将"\"替换为"%"却发现了下面的一个比较有意思的现象:像“\”这个字符如果后面没有碰到“t”,"n"之类可以和t结合在一起组成转意字符的话,是会被浏览器忽略的。用实验来验证我的结论吧:
在IE9中调试:
[url=http://www.1sucai.cn/upload/201111/20111121234258914.png][img]http://files.jb51.net/upload/201111/20111121234258276.png[/img]
[/url]
在Chrome下调试:
[url=http://www.1sucai.cn/upload/201111/20111121234258684.png][img]http://files.jb51.net/upload/201111/20111121234258807.png[/img]
[/url]
在这里定义了一个变量,变量中含有一些平时可能很少出现的字符"\",调试的时候,看看上面的提示了吗,浏览器很智能的忽略掉了特殊位置的字符。因此在将一些看似很平常的字符(例如文件路径等)放在js的变量中,可能输出来的结果并不是预期的。