为什么这个Javascript代码的行为是这样的?

为什么这个Javascript代码的行为是这样的?,javascript,Javascript,我不知道为什么上面的代码不起作用。浏览器窗口只会继续加载,而不会显示任何内容。我甚至不能在谷歌浏览器中使用F12来调试代码。我不确定,但我认为问题在于标签。看起来很好,但不是很好。注意空格。难道这四个都不能正常工作吗?不知道为什么,但是代码开始工作了。我非常非常肯定,它一开始不起作用。奇怪 此外,当使用或被使用时,打印文本是et voilÃ!而不是等着瞧! 有什么想法吗?当JavaScript位于HTML中的标记内而不是外部文件时,尝试转义/with\ <!DOCTYPE html>

我不知道为什么上面的代码不起作用。浏览器窗口只会继续加载,而不会显示任何内容。我甚至不能在谷歌浏览器中使用F12来调试代码。我不确定,但我认为问题在于标签。看起来很好,但不是很好。注意空格。难道这四个都不能正常工作吗?不知道为什么,但是代码开始工作了。我非常非常肯定,它一开始不起作用。奇怪

此外,当使用或被使用时,打印文本是et voilÃ!而不是等着瞧! 有什么想法吗?

当JavaScript位于HTML中的标记内而不是外部文件时,尝试转义/with\

<!DOCTYPE html>
<html>
<body>

<script type="text/javascript">
<!--
    var x = 26;
    do{
        document.write(x + " et voilà! <br />");
        x++;
    }while(x<32);
//-->
</script>

</body>
</html>
但我在Chrome上看不到任何问题

至于Unicode字符,您应该将文件编码为UTF-8并添加到文档的头部

document.write(x + " et voilà! <br \/>");

Ã而不是a是UTF-8的问题

HTML解决方案: 设置元字符集,并使用UTF-8编码保存文件:

<html><head><meta charset="utf-8" /></head>
使用UTF-8编码保存文件: ...
html/xml注释和javascript注释//位于同一行。还有字符串html解析器中的/>结束标记不理解或看不到javascript,它只看到/>-因此一个坏的解析器可能会混淆

除去// 将字符串拆分为document.writex+et-voilá!br++>;
不管怎样,您的原始代码在我的Chrome上运行。

。这很有效,但很可怕,不要那样做。另外,不要将javascript放在HTML注释中。对,但是将它们与只能为空的元素一起使用没有坏处,例如,如果您想要polyglot X/HTML5。@user2357112为什么不在HTML注释中插入javascript?有人告诉我这是一个很好的做法。使无法理解Javascript的浏览器忽略它们。@Mosho什么是可怕的?谢谢,更正。虽然我的答案主要是编码,明白了。现在我读了你的答案,我觉得自己很傻。我应该考虑一下编码。在Linux中工作。
<meta charset="UTF-8">
AddDefaultCharset utf-8