JavaScript 可以通过不同的方式来输出数据。

  • 使用 window.alert() 弹出警告框。

  • 使用 document.write() 方法将内容写到 HTML 文档中。

  • 使用 innerHTML 写入到 HTML 元素。

  • 使用 console.log() 写入到浏览器的控制台。

window.alert()

你可以弹出警告框来显示数据:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. </dead>
  5. <body>
  6. <h1>这里是一个标题</h1>
  7. <p>这里是一个段落。</p>
  8. <script>
  9. window.alert(5 + 6);
  10. </script>
  11. </body>
  12. </html>

document.write()

您可以将 JavaScript 直接写在 HTML 文档中:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. </dead>
  5. <body>
  6. <h1>这里是一个标题</h1>
  7. <p>这里是一个段落。</p>
  8. <script>
  9. document.write(Date());
  10. </script>
  11. </body>
  12. </html>

请使用 document.write() 仅仅向文档输出写内容。 document.write() 是直接写入到页面的内容流,如果在写之前没有调用 document.open(), 浏览器会自动调用open()。每次写完关闭之后重新调用该函数,会导致页面被重写。即,如果在文档已完成加载后执行 document.write(),整个 HTML 页面将被覆盖。

innerHTML

如需从 JavaScript 访问某个 HTML 元素,您可以使用 document.getElementById(id) 方法。
请使用 “id” 属性来标识 HTML 元素,并 innerHTML 来获取或插入元素内容:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. </dead>
  5. <body>
  6. <h1>这里是一个标题</h1>
  7. <p id="demo">这里是一个段落。</p>
  8. <script>
  9. document.getElementById("demo").innerHTML = "段落已修改。";
  10. </script>
  11. </body>
  12. </html>

innerHTML 是 DOM 页面元素的一个属性,代表该元素的 HTML 内容。你可以精确到某一个具体的元素来进行更改。如果想修改 document 的内容,则需要修改 document.documentElement.innerElement。 innerHTML 很多情况下都优于 document.write(),其原因在于其允许更精确的控制要刷新页面的那一个部分。

console.log()

如果您的浏览器支持调试,你可以使用 console.log() 方法在浏览器中显示 JavaScript 值。
浏览器中使用 F12 来启用调试模式, 在调试窗口中点击 “Console” 菜单。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. </dead>
  5. <body>
  6. <h1>我的第一个 Web 页面</h1>
  7. <script>
  8. a = 5;
  9. b = 6;
  10. c = a + b;
  11. console.log(c);
  12. </script>
  13. </body>
  14. </html>

console.log() 相比 window.alert() 的优点是: 他能看到结构化的东西,如果是 alert,弹出一个对象就是 [object object],但是 console 能看到对象的内容。 console 不会打断你页面的操作,如果用 alert 弹出来内容,那么页面就死了,但是 console 输出内容后你页面还可以正常操作。


解决文档已完成加载后执行 document.write,整个 HTML 页面将被覆盖的问题

  1. <button onclick="winTest()">按钮</button>
  2. function winTest()
  3. {
  4. var txt1 = "This is a new window.";
  5. var txt2 = "This is a test.";
  6. document.open("text/html","replace");//加上
  7. document.writeln(txt1);
  8. document.write(txt2);
  9. document.close();//加上
  10. }

输出 - 图1
该方法将关闭 open() 方法打开的文档流,并强制地显示出所有缓存的输出内容。如果您使用 write() 方法动态地输出一个文档,必须记住当你这么做的时候要调用 close() 方法,以确保所有文档内容都能显示。document.write() 不会隐式调用 document.close() 方法的,否则上例中将不会有 This is a new window. 内容了。
一旦调用了 close(),就不应该再次调用 write(),因为这会隐式地调用 open() 来擦除当前文档并开始一个新的文档。
在载入页面后,浏览器输出流自动关闭。在此之后,比如延迟脚本 [setTimeout()] 或是 onload 执行的方法,任何一个对当前页面进行操作的 document.write() 方法将打开—个新的输出流,它将清除当前页面内容(包括源文档的任何变量或值)。