我目前正在 CodeAcademy 上学习 javascript 编码实践。在 Codeacademy 中测试代码时,我使用 console.log 将字符串输出到 Codeacademy 中的内置浏览器。该代码运行良好。第一个问题是:当我在 Dreamweaver 文本编辑器中测试同一段代码并将其输出到浏览器时,它什么也不打印,我必须将其更改为 document.write 才能正常工作。
下一部分 然后我在某处读到不建议在生产代码中使用 document.write !有人可以解释一下吗?
下一部分 前几天我参加了一个关于 JS 免费 session 的简短介绍。在这次 session 上,有人建议使用诸如prompt(“La di da”);之类的东西。不建议在生产工作中使用。
如果有人有时间和精力解释一下为什么这些东西内置在JS中但不推荐使用或者为什么它们在使用时不起作用,我将非常感激。
最佳答案
Code Academy 将在其 Web 应用程序中模拟
控制台
。在大多数浏览器中按“F12”,您将打开“开发人员工具”;它将内置一个控制台,这是console.*
(包括console.log()
)调用获取输出的地方。就像我说的,Code Academy 将有一些他们自己的 JavaScript,它们将捕获这些调用,并使他们的教程更易于使用,并将其输出到您更容易看到的地方。
但是,Dreamweaver 不会执行此操作,这就是您看不到它的原因。
使用
document.write
并没有什么本质上的错误。 但是根据页面是否已加载它的行为有所不同,并且通常有更友好和更有用的替代方案,例如用于定位直接输出的位置的document.getElementById()
。有关详细信息,请参阅 Why is document.write considered a "bad practice"?
与
document.write
一样,prompt()
、confirm()
等没有任何问题; Stack Overflow 本身在其网站上使用confirm()
。缺点是它们无法设置样式,例如,prompt() 仅限于一次请求一件事。但是模型窗口(例如 jQuery UI dialog 、 Bootstraps "Model" 或各种 lightbox plugins )可以。
关于javascript - 所需信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20240831/