zoukankan      html  css  js  c++  java
  • javascript中alert()与console.log()的区别

    我们在做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的实际执行推迟,相当于“惰性”求值,遇上数组、对象这样的引用类型就出上面的问题了。

  • 相关阅读:
    Emoji表情编解码库XXL-EMOJI
    代码生成平台Xxl-Code-Generator
    分布式单点登录框架XXL-SSO
    分布式爬虫框架XXL-CRAWLER
    Java对象和Excel转换工具XXL-EXCEL
    API管理平台XXL-API
    分布式缓存管理平台XXL-CACHE
    不知不觉已经写了多年代码,贴一下12年写的代码,表喷哈
    memcached安装、使用
    MySQL和Redis数据一致性问题
  • 原文地址:https://www.cnblogs.com/good10001/p/4763817.html
Copyright © 2011-2022 走看看