简介alert()与console.log()的不同


Posted in Javascript onAugust 26, 2015

简单的说alert 是弹出提示而console.log是在调试工具里打日志,下面具体给大家列出alert()与console.log()的不同点,

[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    

原型链中toString()方法输出alert()和console.log()得到不同的结果

<script type="text/javascript">
var a = [1,2,3];
alert(a); //1,2,3
Array.prototype.toString = function(){
  return 'str';
}
alert(a); //str
</script>

<script type="text/javascript">
var a = [1,2,3];
console.log(a); //[1,2,3]
Array.prototype.toString = function(){
  return 'str';
}
console.log(a); //[1,2,3]
</script>

上面的代码输出的结果不一样的原因如下:

console.log() 可以打印任何类型的数据。而 alert() 只能输出string,如果alert输出是对象会自动调用 toString() 方法。如果想 console.log() 输出的与alert相同,需要调用 toString() :

console.log(obj. toString() );

和自己写不写toString()完全没有关系,你自己写的那个toStrong() 只是重写了对象默认的toString()方法。

如果你没有重写toString()方法时,alert() 也会调用默认的。

还是那句话: console.log() 可以打印任何类型的数据,并会因为你自己重写了toString(),而调用。如果log() 也只能打印string的话,那么console 的这个log 方法就没有存在的必要了。

主要是俩个函数所期望的数据类型不一样。alert()期望的数据类型是string型的。这就是相当于要把对象用在string语境中,自然就会做出相应的转换。console.log()显然是可以接受任何类型的数据。那他就不用转换。也就是说不用放在string语境中。那OBJ自然是他一开始的数据类型。

以上内容列出了alert()与console.log()的不同,有不同想法的朋友,欢迎提出,分享给大家,共同学习进步。

Javascript 相关文章推荐
用jquery存取照片的具体实现方法
Jun 30 Javascript
jQuery插件开发的两种方法及$.fn.extend的详解
Jan 16 Javascript
jQuery异步加载数据并添加事件示例
Aug 24 Javascript
懒加载实现的分页&amp;&amp;网站footer自适应
Dec 21 Javascript
vue-router 学习快速入门
Mar 01 Javascript
vue.js动态数据绑定学习笔记
May 19 Javascript
js异步编程小技巧详解
Aug 14 Javascript
electron实现qq快捷登录的方法示例
Oct 22 Javascript
微信小程序获取用户绑定手机号方法示例
Jul 21 Javascript
详解Angular Karma测试的持续集成实践
Nov 15 Javascript
NUXT SSR初级入门笔记(小结)
Dec 16 Javascript
js实现tab栏切换效果
Aug 02 Javascript
jQuery左右滚动支持图片放大缩略图图片轮播代码分享
Aug 26 #Javascript
JS根据key值获取URL中的参数值及把URL的参数转换成json对象
Aug 26 #Javascript
jquery实现的横向二级导航效果代码
Aug 26 #Javascript
jQuery三级下拉列表导航菜单代码分享
Apr 15 #Javascript
jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
Aug 26 #Javascript
js钢琴按钮波浪式图片排列效果代码分享
Aug 26 #Javascript
javascript中alert()与console.log()的区别
Aug 26 #Javascript
You might like
Zend引擎的发展 [15]
2006/10/09 PHP
十天学会php(2)
2006/10/09 PHP
FleaPHP框架数据库查询条件($conditions)写法总结
2016/03/19 PHP
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
JavaScript中如何通过arguments对象实现对象的重载
2014/05/12 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
2016/08/06 Javascript
Vue.js 插件开发详解
2017/03/29 Javascript
利用ES6的Promise.all实现至少请求多长时间的实例
2017/08/28 Javascript
详解用Node.js写一个简单的命令行工具
2018/03/01 Javascript
Layui数据表格之获取表格中所有的数据方法
2018/08/20 Javascript
微信小程序学习笔记之跳转页面、传递参数获得数据操作图文详解
2019/03/28 Javascript
layer.open回调获取弹出层参数的实现方法
2019/09/10 Javascript
微信小程序 button样式设置为图片的方法
2020/06/19 Javascript
JavaScript 实现继承的几种方式
2021/02/19 Javascript
[34:44]Liquid vs TNC Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
在Windows8上的搭建Python和Django环境
2014/07/03 Python
Python中encode()方法的使用简介
2015/05/18 Python
Python自然语言处理之词干,词形与最大匹配算法代码详解
2017/11/16 Python
Django中间件工作流程及写法实例代码
2018/02/06 Python
Jacobi迭代算法的Python实现详解
2019/06/29 Python
Python TCP通信客户端服务端代码实例
2019/11/21 Python
使用python去除图片白色像素的实例
2019/12/12 Python
Django表单提交后实现获取相同name的不同value值
2020/05/14 Python
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
初中地理教学反思
2014/01/11 职场文书
党员组织关系介绍信
2014/02/13 职场文书
资源工程专业毕业生求职信
2014/02/27 职场文书
纪检干部现实表现材料
2014/08/21 职场文书
体育专业大学生职业生涯规划范文:打造自己的运动帝国
2014/09/12 职场文书
2014政府领导班子对照检查材料思想汇报(3篇)
2014/09/26 职场文书
后勤工作个人总结
2015/02/28 职场文书
教导主任个人总结
2015/03/03 职场文书
农业项目合作意向书
2015/05/08 职场文书
婚庆主持词大全
2015/06/30 职场文书
详解TypeScript中的类型保护
2021/04/29 Javascript
Python基础之函数嵌套知识总结
2021/05/23 Python