javascript中alert()与console.log()的区别

 更新时间:2015年08月26日 09:02:21   投稿:hebedich  
我们在做js调试的时候使用 alert 可以显示信息,调试程序,alert 弹出窗口会中断程序, 如果要在循环中显示信息,手点击关闭窗口都累死。而且 alert 显示对象永远显示为[object ]。 自己写的 log 虽然可以显示一些 object 信息,但很多功能支持都没有 console 好

[1]alert()

    [1.1]有阻塞作用,不点击确定,后续代码无法继续执行

    [1.2]alert()只能输出string,如果alert输出的是对象会自动调用toString()方法

        e.g. alert([1,2,3]);//'1,2,3'

    [1.3]alert不支持多个参数的写法,只能输出第一个值

        e.g. alert(1,2,3);//1

[2]console.log()

    [2.1]在打印台输出

    [2.2]可以打印任何类型的数据

        e.g. console.log([1,2,3]);//[1,2,3]

    [2.3]支持多个参数的写法

        e.g. console.log(1,2,3)// 1 2 3

alert 和 console.log 的结果不同?

score = [1,2,3];
sortedScore = [];
console.log(score);
sortedScore = score.sort(sortNumber)
console.log(sortedScore);
function sortNumber(a, b) {
  return b - a;
}

以上输出:
[3, 2, 1]
[3, 2, 1]

但是改成alert:

score = [1,2,3];
sortedScore = [];
alert(score);
sortedScore = score.sort(sortNumber)
alert(sortedScore);
function sortNumber(a, b) {
  return b - a;
}

以上输出:
1, 2, 3
3, 2, 1

为什么会这样?不应该都是:
1, 2, 3
3, 2, 1
吗?

经过一番研究发现是chrome实现的问题,对输出做了不太合适的优化,把console.log的实际执行推迟,相当于“惰性”求值,遇上数组、对象这样的引用类型就出上面的问题了。

https://bugs.webkit.org/show_bug.cgi?id=35801

这是一个很有历史的 BUG,上个月在开发版已经修复了。

相关文章

  • 微信小程序登录获取不到头像和昵称的详细解决办法

    微信小程序登录获取不到头像和昵称的详细解决办法

    相信好多小伙伴在使用getUserInfo获取小程序用户昵称和头像时却获取不到,下面这篇文章主要给大家介绍了关于微信小程序登录获取不到头像和昵称的详细解决办法,需要的朋友可以参考下
    2022-12-12
  • three.js中聚光灯及其属性介绍小结

    three.js中聚光灯及其属性介绍小结

    本文主要介绍了three.js中聚光灯及其属性介绍小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • JavaScript isArray()函数判断对象类型的种种方法

    JavaScript isArray()函数判断对象类型的种种方法

    我们知道,JavaScript中检测对象类型的运算符有:typeof、instanceof,还有对象的constructor属性
    2010-10-10
  • IE无法设置短域名下Cookie

    IE无法设置短域名下Cookie

    最近客户在使用我们的流量监测系统以及GA时发现了一个问题,我们统计到的数据比GA的要多很多倍,而且我们统计到的数据中,跳出率非常高,高达99%左右。
    2010-09-09
  • 关于layui的下拉搜索框异步加载数据的解决方法

    关于layui的下拉搜索框异步加载数据的解决方法

    今天小编就为大家分享一篇关于layui的下拉搜索框异步加载数据的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • bootstrap 通过加减按钮实现输入框组功能

    bootstrap 通过加减按钮实现输入框组功能

    这篇文章主要介绍了bootstrap 输入框组 通过加减按钮来增加删除内嵌输入框组,当我点击 + 按钮时,会添加一行输入框组;当点击 - 按钮时,会删除这一行输入框组。具体实现代码大家参考下本文
    2017-11-11
  • 浅谈JavaScript中的“!!”作用

    浅谈JavaScript中的“!!”作用

    这篇文章主要介绍了浅谈JavaScript中的“!!”作用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • nuxt+axios实现打包后动态修改请求地址的方法

    nuxt+axios实现打包后动态修改请求地址的方法

    这篇文章主要介绍了nuxt+axios实现打包后动态修改请求地址的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • JS面向对象实现飞机大战

    JS面向对象实现飞机大战

    这篇文章主要为大家详细介绍了JS面向对象实现飞机大战,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • undefined与null的区别示例详解

    undefined与null的区别示例详解

    这篇文章主要为大家介绍了undefined与null的区别示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12

最新评论