javascript - 为什么要转义?
本文介绍了javascript - 为什么要转义?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript">
document.write('<script type="text/javascript" src="http://static0.tuicool.com/assets/font-awesome.min.css?'+Math.random()+'"><\/script>');
</script>
</head>
<body>
</body>
</html>
上面这个代码为什么要转义?'"></script>'这个位置
解决方案
首先,授人以鱼不如授人以渔。
我先来说说"鱼" -> 解释:
可能书写者认为斜杠需要转义,否则将会出错(不能组成string)
但是ECMA5里面明确说了反斜杠(backslash)不可以,但是没有对斜杠做要求.
证明如下:
但是为什么加了反斜杠也可以运行呢?
因为反斜杠是转义符号.
其次我再说说"渔":
其实这个问题我一开始也不明白是为什么,那我是怎么解决问题的呢(当然正确性仍然有待探讨)?
因为凡是JavaScript相关的基础知识,一般在官方手册里面都能很好的寻找到解释。
"官方手册"地址:
http://ecma-international.org...
然后我就ctrl+F搜索"backslash"这个单词,然后就找到了。。。
当然你可以看目录找相关内容,不过都需要花费一些时间,耐心是最重要的。
然后,
没有然后了.
-----------------------update-----------------------
更新
抱歉,之前说的不对,我的场景存在问题。
总之,先看代码:
代码作者添加转义符号,是为了防止JS引擎把页面内嵌的语句中的
</script>
当成是script标签的结束.不过最好不要把JS写在html内,所以我的写法是:
就没有出现你所说的错误了.
打完收工.
这篇关于javascript - 为什么要转义?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文