为什么Javascript函数有时在注释块中定义?

时间:2015-03-04 21:28:51

标签: javascript

我有一个关于定义javascript函数的问题。

通常我看到javascript函数是这样定义的:

function test() {
  alert("test");
}

但是我看到人们用这种方式在注释块中定义一个Javascript函数:

<!--
function test() {
  alert("test");
}
-->

或者有时人们会以这种方式在注释块中定义Javascript函数:

<!--
function test() {
  alert("test");
}
// -->

那么上面3种风格有什么区别?在哪种情况下,一种风格比其他风格更好?

感谢您阅读此问题。

1 个答案:

答案 0 :(得分:3)

它可以追溯到许多浏览器不支持JavaScript的日子,因此不知道<script>标记是什么。通过这样做:

<script>
<!--
function test() {
  alert("test");
}
// -->
</script>

任何不知道<script>标记的浏览器只会看到HTML注释,并忽略它。

第二种形式,在最后一行没有//,实际上是无效的。虽然了解<script>标记的浏览器会忽略块开头的开头HTML注释,但这就是他们所做的一切,所以如果没有最后一行的JavaScript注释,他们会尝试解析-->作为实际代码。

这些天的首选形式只是使用第一个,因为每个现代浏览器都支持JavaScript。或者,更好的是,尽可能将代码放在单独的文件中,并使用<script src="..."></script>将代码与视图分开。