javascript - 为什么要转义?

查看:121
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆