Javascript &引用;警报坏了“真正地

Javascript &引用;警报坏了“真正地,javascript,Javascript,有一种观点认为“alert()是坏的” 致谢: 当然,我们很少希望在实际的UI设计中使用它,因为有更好的方式与用户沟通 对于调试,console.log()比alert()有更多的价值 当alert()遇到阻碍时,某些情况(如使用setTimeout)会遇到问题 如果开发人员需要暂停和恢复执行,那么实际的调试器比alert()更好地处理暂停和恢复执行 问题: 有没有一个可靠的、合乎逻辑的理由永远不要使用alert() console.log()的增加值是否真的会大幅降低alert()的值,使

有一种观点认为“alert()是坏的”

致谢:

  • 当然,我们很少希望在实际的UI设计中使用它,因为有更好的方式与用户沟通
  • 对于调试,
    console.log()
    alert()
    有更多的价值
  • alert()
    遇到阻碍时,某些情况(如使用
    setTimeout
    )会遇到问题
  • 如果开发人员需要暂停和恢复执行,那么实际的调试器比
    alert()
    更好地处理暂停和恢复执行
问题:

  • 有没有一个可靠的、合乎逻辑的理由永远不要使用
    alert()
  • console.log()
    的增加值是否真的会大幅降低
    alert()
    的值,使其从“在有限的情况下有用”变为“不好”
  • 如果有人想在一个简短的测试中使用
    alert()
    ,但没有设置日志记录,并且没有任何副作用(想想教程或快速原型),你会怎么说
  • 不,这只是一种语言功能,没有理由永远使用
    alert()
  • alert()
    的工作原理不同于
    console.log()
    ,而且
    console
    并不总是可用,因此
    console.log()
    可能会降低
    alert()
    的值,但肯定它不能总是被替换
  • 解释
    console.log()
    alert()
    的区别,特别是
    alert()
    必须输出字符串,因此它必须首先将值转换为字符串
    -如果您想在某个时候检查您的值,并选择
    alert()
    来完成该任务,这一点非常重要它还会停止脚本的执行(这有时可能有用)
  • 更多链接:

    • ,

    这与“从不使用表”位相当。这是一种夸张的说法,旨在减少这种极其糟糕的设计的实例数量。它被认为是糟糕的设计,因为它阻止了额外的浏览器操作(如后退按钮)和代码执行(额外的JavaScript和页面呈现),直到用户单击“确定”按钮。该按钮上的“ok”标签无法更改,并且不适用于绝大多数用例

    有更好的方法显示错误信息、健全性检查操作和确认对话框,所以请使用它们


    有一些“适当”的用例,例如当您出于某种原因需要停止正常的页面流,并且继续加载页面是危险的(安全性)。我想不出多少具体的例子,但它们都是边缘化的。某处

    您正在打断用户-如果他打开了许多选项卡,而您提醒他,他会突然转到您的选项卡。。作为一个用户,我感到很痛苦。这是我最担心的事

    尽管如此,console.log并不能在所有浏览器中运行,但IE7不支持相同的浏览器

    只要清楚为什么会有警报,使用警报是可以的

    此外,警报对记录JS对象没有帮助,您只能显示字符串

    有没有一个可靠的、合乎逻辑的理由不使用alert()

    警报是坏的,因为它没有积极的功能,只有消极的功能

    • 阻止整个浏览器
    • 阻止javascript线程
    • 只打印字符串
    • 需要用户交互才能继续(这意味着您无法自动使用浏览器)
    • 被常见的弹出窗口阻止程序阻止
    • 在node.js等非浏览器环境中不起作用(但是console.log在node.js中起作用)
    console.log()的增加值是否真的会大幅降低alert()的值,使其从“在有限的场景中有用”变为“不好”

    是的,尽管有一些例外


    alert唯一的价值是作为一个快速的黑客工具来调试旧版浏览器,或者作为一个烦扰用户的工具。

    好吧,你似乎用你的第一列理由回答了你的问题

    是否有一个可靠的、合乎逻辑的理由不使用警报

    何时调试站点?是,切勿使用
    alert()

    从来没有,从来没有?可能太远了。但是,对于大多数用户来说,
    alert()
    会带来愤怒和沮丧。我从未去过一个网站,在那里我很高兴他们用一个提醒对话框打断了我的访问

    console.log()
    的增加值是否真的会大幅降低
    alert()
    的值,使其从“在有限的情况下有用”变为“不好”

    在调试应用程序时,我同意,
    alert()
    是错误的。我可以在
    console.log()
    中提供更多信息,这是一个完整的JavaScript对象,详细说明了大量信息。在警报框中显示的消息没有那么大的灵活性

    如果有人想在一个简短的测试中使用alert(),而这个测试没有设置日志记录,并且任何副作用都是无关的(想想教程或快速原型),你会怎么说

    alert()
    相比,键入
    console.log()
    并没有那么难。你得到了很多很多有用的信息,你正在为你的编码“肌肉记忆”进行良好的训练。如果你一直使用良好的实践,它们会自然而然地出现在你的面前。如果你一直使用坏习惯,它们也会自然而然地出现在你身上


    最终,这取决于你在做什么。你在调试吗?或者您正在尝试与用户通信?这是两种不同的东西,需要不同的方法。

    出于调试目的,
    警报有时会适得其反,但它是即时的。在调试场景中使用
    alert
    的问题在于它会中断程序流。而
    console.log
    从允许
    var oldAlertFunc = window.alert;
    window.alert = function(message) {
        console.log(message);
    };