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


Posted in Javascript onAugust 26, 2015

[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,上个月在开发版已经修复了。

Javascript 相关文章推荐
实用javaScript技术-屏蔽类
Aug 15 Javascript
全面理解面向对象的 JavaScript(来自ibm)
Nov 10 Javascript
HTML页面弹出居中可拖拽的自定义窗口层
May 07 Javascript
js实现获取当前时间是本月第几周的方法
Aug 11 Javascript
基于slideout.js实现移动端侧边栏滑动特效
Nov 28 Javascript
js实现瀑布流效果(自动生成新的内容)
Mar 16 Javascript
vue-cli 打包使用history模式的后端配置实例
Sep 20 Javascript
JS简单数组排序操作示例【sort方法】
May 17 Javascript
JavaScript中的ES6 Proxy的具体使用
Jun 16 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
Aug 31 Javascript
Vue中Object.assign清空数据报错的解决方案
Mar 03 Vue.js
TypeScript实用技巧 Nominal Typing名义类型详解
Sep 23 Javascript
JavaScript基本数据类型及值类型和引用类型
Aug 25 #Javascript
基于jQuery实现的QQ表情插件
Aug 25 #Javascript
js中javascript:void(0) 真正含义
Nov 05 #Javascript
js实现三张图(文)片一起切换的banner焦点图
Aug 25 #Javascript
js焦点文字滚动效果代码分享
Aug 25 #Javascript
JS实现灵巧的下拉导航效果代码
Aug 25 #Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
Aug 25 #Javascript
You might like
DOTA2 玩家自创拉野攻略 特色英雄快速成长篇
2020/04/20 DOTA
PHP命名空间(namespace)的动态访问及使用技巧
2014/08/18 PHP
PHP7内核之Reference详解
2019/03/14 PHP
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
2009/12/27 Javascript
jQuery .tmpl(), .template()学习资料小结
2011/07/18 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
2014/06/30 Javascript
JavaScript实现的浮动层框架用法实例分析
2015/10/10 Javascript
几种tab切换详解
2017/02/03 Javascript
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
2017/03/02 Javascript
Vue关于数据绑定出错解决办法
2017/05/15 Javascript
浅析node应用的timing-attack安全漏洞
2018/02/28 Javascript
小程序红包雨的实现示例
2019/02/19 Javascript
iview tabs 顶部导航栏和模块切换栏的示例代码
2019/03/04 Javascript
vue计算属性computed的使用方法示例
2019/03/13 Javascript
详解Vue.directive 自定义指令
2019/03/27 Javascript
浅谈vue 多个变量同时赋相同值互相影响
2020/08/05 Javascript
Python函数中定义参数的四种方式
2014/11/30 Python
python中numpy包使用教程之数组和相关操作详解
2017/07/30 Python
Python 编码规范(Google Python Style Guide)
2018/05/05 Python
python os.path模块常用方法实例详解
2018/09/16 Python
基于spring boot 日志(logback)报错的解决方式
2020/02/20 Python
PyQT5 实现快捷键复制表格数据的方法示例
2020/06/19 Python
HTML中fieldset标签概述及使用方法
2013/02/01 HTML / CSS
HTML5新增的8类INPUT输入类型介绍
2015/07/06 HTML / CSS
英国领先的办公用品供应商:Viking
2016/08/01 全球购物
公司同意接收函
2014/01/13 职场文书
尽职尽责村干部自我鉴定
2014/01/23 职场文书
2014年度安全生产目标管理责任书
2014/07/25 职场文书
私营公司诉讼代理委托书范本
2014/09/13 职场文书
2014和解协议书范文
2014/09/15 职场文书
2014年残联工作总结
2014/11/21 职场文书
关于长城的导游词
2015/01/30 职场文书
2016年入党心得体会范文
2016/01/23 职场文书
go语言中切片与内存复制 memcpy 的实现操作
2021/04/27 Golang
redis通过6379端口无法连接服务器(redis-server.exe闪退)
2021/05/08 Redis
Apache自带的ab压力测试工具的实现
2022/07/23 Servers