简介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 相关文章推荐
$.ajax json数据传递方法
Nov 19 Javascript
js模拟类继承小例子
Jul 17 Javascript
js事件冒泡实例分享(已测试)
Apr 23 Javascript
js获取指定日期前后的日期代码
Aug 20 Javascript
jquery的ajax和getJson跨域获取json数据的实现方法
Feb 04 Javascript
jquery实现的仿天猫侧导航tab切换效果
Aug 24 Javascript
原生JavaScript实现异步多文件上传
Dec 02 Javascript
etmvc+jQuery EasyUI+combobox多值操作实现角色授权实例
Nov 09 Javascript
详解JavaScript树结构
Jan 09 Javascript
利用Node.js+Koa框架实现前后端交互的方法
Feb 27 Javascript
jQuery简介_动力节点Java学院整理
Jul 04 jQuery
微信小程序之蓝牙的链接
Sep 26 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
台湾中原大学php教程孙仲岳主讲
2008/01/07 PHP
php中用于检测一个地理IP地址是否可用的代码
2012/02/19 PHP
php实现自动获取生成文章主题关键词功能的深入分析
2013/06/03 PHP
PHP中mb_convert_encoding与iconv函数的深入解析
2013/06/21 PHP
php基于str_pad实现卡号不足位数自动补0的方法
2014/11/12 PHP
基于ThinkPHP实现的日历功能实例详解
2017/04/15 PHP
php实现算术验证码功能
2018/12/05 PHP
PHP date_default_timezone_set()设置时区操作实例分析
2020/05/16 PHP
静态图片的十一种滤镜效果--不支持Ie7及非IE浏览器。
2007/03/06 Javascript
初识javascript 文档碎片
2010/07/13 Javascript
JavaScript高级程序设计 事件学习笔记
2011/09/10 Javascript
javascript实现分栏显示小技巧附图
2014/10/13 Javascript
javascript基础知识分享之类与函数化
2016/02/13 Javascript
JavaScript实现form表单的多文件上传
2020/03/27 Javascript
详解NodeJs开发微信公众号
2018/05/25 NodeJs
Vue源码探究之状态初始化
2018/11/14 Javascript
JQuery样式与属性设置方法分析
2019/12/07 jQuery
解决新建一个vue项目过程中遇到的问题
2020/10/22 Javascript
[45:15]Optic vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
Python栈类实例分析
2015/06/15 Python
深入理解Python装饰器
2016/07/27 Python
python使用matplotlib绘制柱状图教程
2017/02/08 Python
python tensorflow基于cnn实现手写数字识别
2018/01/01 Python
Python根据欧拉角求旋转矩阵的实例
2019/01/28 Python
python识别图像并提取文字的实现方法
2019/06/28 Python
python 中如何获取列表的索引
2019/07/02 Python
Python3.6 + TensorFlow 安装配置图文教程(Windows 64 bit)
2020/02/24 Python
Python scrapy爬取小说代码案例详解
2020/07/09 Python
Python析构函数__del__定义原理解析
2020/11/20 Python
Python常用GUI框架原理解析汇总
2020/12/07 Python
Araks官网:纽约内衣品牌
2020/10/15 全球购物
关工委先进个人事迹材料
2014/05/23 职场文书
安全责任书模板
2014/07/22 职场文书
“向国旗敬礼”主题班会活动设计方案
2014/09/27 职场文书
党员查摆四风问题思想汇报
2014/10/25 职场文书
入党心得体会
2019/06/20 职场文书