评论为什么会影响我的文件的逻辑是什么?(Why do comments affect the log

2019-10-22 04:05发布

编辑:

在这里,它显示了这个作为一个评论。 在我的IDE,它显示了这个为代码。 如此怪异(代码集#2):

<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="bootstrap-3.3.2-dist/js/bootstrap.min.js"></script>

我有两个文件。 一个人的意见和一个没有。 所述第一组码功能完美。 第二组代码,告诉我Uncaught ReferenceError: $ is not defined在JavaScript控制台,并且不叫警报。 为什么是影响了我的脚本中的注释?

代码集#1

<!DOCTYPE html>
<html lang="en">
<head>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <script src="bootstrap-3.3.2-dist/js/bootstrap.min.js"></script>
</head>
<body>
<script>
    $(function () {
        alert("JQUERY!");
    });
</script>
</body>
</html>

代码集#2

<!DOCTYPE html>
<html lang="en">
<head>
    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <script src="bootstrap-3.3.2-dist/js/bootstrap.min.js"></script>
    <![endif]-->
</head>
<body>
<script>
    $(function () {
        alert("JQUERY!");
    });
</script>
</body>
</html>

Answer 1:

这不是普通的评论,但条件注释。 请参阅: http://www.quirksmode.org/css/condcom.html

上述评论所有的JavaScript包括评论,因此它们不会加载,除非在Internet Explorer版本相比低9。

你得到错误信息,因为jQuery是没有加载(它是HTML注释里面)。 如果使用IE8例如不会有错误。



Answer 2:

<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="bootstrap-3.3.2-dist/js/bootstrap.min.js"></script>
<![endif]-->

if结构有一个条件注释使用IE浏览器。

如果您使用的是IE浏览器版本号大于9其他浏览器将把该整段像一个单一的注释,不包括任何的JavaScript脚本代码将仅呈现。



Answer 3:

你的文件被期待要加载jQuery的。 看来你注释掉jQuery脚本,你必须包括jQuery的脚本,取消注释:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>


Answer 4:

它不会在浏览器中运行? 它只会在每一种情况下由服务器流式传输,并通过客户端下载。

它不应该有任何区别,只要你没有太多字符

虽然动态网页生成的服务器端,您可能需要使用服务器端的注释,如:<% - 注释 - %>或{%注释%}



Answer 5:

<!--[if lt IE 9]> <![endif]-->是用于IE条件注释。 其他浏览器将读取它们的意见。 如果您以后使用的IE版本比9,这些脚本将被加载,这可能会导致与其他脚本冲突。



文章来源: Why do comments affect the logic of my file?