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

Why does this Javascript code behave like this?

本文关键字:Javascript 代码 为什么      更新时间:2023-09-26
<!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>

我不知道为什么上面的代码不起作用。浏览器窗口一直在加载,什么也没有出现。我甚至不能在谷歌浏览器中使用F12来调试代码。我不确定,但我认为问题在于<br />标签。<br><br/ >似乎工作良好,但不是<br /><br/>。(注意空格)。这四个不都应该正常工作吗?(不知道为什么,但是代码开始工作了。我非常非常确定一开始是行不通的。奇怪。)

当使用<br><br/ >时,打印的文本是et voilà !而不是et voilà!任何想法吗?

"Ã"代替"a"是UTF-8的一个问题。

HTML解决方案:

设置元字符集,并以UTF-8编码保存文件:

<meta charset="UTF-8">

& lt;元charset ="utf-8"比;

。HTACESS方案:
AddDefaultCharset utf-8

htaccess。html,。css,。js的UTF-8编码-什么是最好的方法?

用UTF-8编码保存文件:

  • Sublime Text 2 - Encoding UTF-8
  • 如何在VIM
  • 中设置文件的字符编码
  • 是否可以更改记事本的默认编码?
  • notepad++将ansi编码文件转换为utf-8

尝试用'转义/,当您的JavaScript在HTML中的<script>标签内(而不是外部文件)。

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

但我在Chrome中没有看到任何问题。

就Unicode字符而言,您应该将文件编码为UTF-8,并将<meta charset="utf-8" />添加到文档的头部。

<html><head><meta charset="utf-8" /></head>

html/xml注释和javascript注释//在同一行。然后在字符串中有/>结束标记(html解析器不能理解或看到javascript,它只看到/>)——所以一个坏的解析器可能会感到困惑。

  • 删除//
  • 将字符串拆分为document.write(x + " et voilà! br " + "/" + ">");

无论如何,你的原始代码在我的Chrome上工作