简介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 相关文章推荐
js实现鼠标悬浮给图片加边框的方法
Jan 30 Javascript
分享一则JavaScript滚动条插件源码
Mar 03 Javascript
jQuery聚合函数实例
May 21 Javascript
详解javascript实现瀑布流列式布局
Jan 29 Javascript
JS中使用变量保存arguments对象的方法
Jun 03 Javascript
Bootstrap媒体对象学习使用
Mar 07 Javascript
微信小程序实现跑马灯效果完整代码(附效果图)
May 30 Javascript
微信小程序实现swiper切换卡内嵌滚动条不显示的方法示例
Dec 20 Javascript
如何自定义微信小程序tabbar上边框的颜色
Jul 09 Javascript
微信小程序仿抖音短视频切换效果的实例代码
Jun 24 Javascript
antd-日历组件,前后禁止选择,只能选中间一部分的实例
Oct 29 Javascript
nestjs中异常过滤器Exceptionfilter的具体使用
Feb 07 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/03/27 PHP
PHP下一个非常全面获取图象信息的函数
2008/11/20 PHP
PHP中使用sleep造成mysql读取失败的案例和解决方法
2014/08/21 PHP
PHP程序员常见的40个陋习,你中了几个?
2014/11/20 PHP
PHP扩展程序实现守护进程
2015/04/16 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
2017/09/29 PHP
JavaScript window.setTimeout() 的详细用法
2009/11/04 Javascript
使用jQuery UI库开发Web界面的简单入门指引
2016/04/22 Javascript
jQuery+ajax+asp.net获取Json值的方法
2016/06/08 Javascript
javascript类型系统_正则表达式RegExp类型详解
2016/06/24 Javascript
js获取上传文件的绝对路径实现方法
2016/08/02 Javascript
Web前端开发之水印、图片验证码
2016/11/27 Javascript
JS针对Array的各种操作汇总
2016/11/29 Javascript
详解Javascript中DOM的范围
2017/02/13 Javascript
浅谈函数调用的不同方式,以及this的指向
2017/09/17 Javascript
vue基于viewer实现的图片查看器功能
2019/04/12 Javascript
layer实现弹出层自动调节位置
2019/09/05 Javascript
JS实现单张或多张图片持续无缝滚动的示例代码
2020/05/10 Javascript
微信小程序使用GoEasy实现websocket实时通讯
2020/05/19 Javascript
[01:03:36]Ti4 循环赛第三日DK vs Titan
2014/07/12 DOTA
[01:09:20]NB vs NAVI Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
跟老齐学Python之集合的关系
2014/09/24 Python
python使用Tkinter显示网络图片的方法
2015/04/24 Python
python按时间排序目录下的文件实现方法
2018/10/17 Python
python实现推箱子游戏
2020/03/25 Python
python脚本开机自启的实现方法
2019/06/28 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
2019/08/05 Python
python实现的发邮件功能示例
2019/09/11 Python
Python 忽略文件名编码的方法
2020/08/01 Python
Python Process创建进程的2种方法详解
2021/01/25 Python
HTML5中canvas中的beginPath()和closePath()的重要性
2018/08/24 HTML / CSS
介绍一下如何优化MySql
2016/12/20 面试题
大学毕业生通用自荐信范文
2013/10/31 职场文书
酒店led欢迎词
2014/01/09 职场文书
结婚周年感言
2014/02/24 职场文书
导游词之南京栖霞山
2019/10/18 职场文书