简介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 相关文章推荐
javascript与CSS复习(三)
Jun 29 Javascript
解析javascript 数组以及json元素的添加删除
Jun 26 Javascript
js如何实现设计模式中的模板方法
Jul 23 Javascript
window.location.href中url中数据量太大时的解决方法
Dec 23 Javascript
JavaScript对IE操作的经典代码(推荐)
Mar 10 Javascript
iscroll碰到Select无法选择下拉刷新的解决办法
May 21 Javascript
用js动态添加html元素,以及属性的简单实例
Jul 19 Javascript
EasyUI为Numberbox添加blur事件的方法
Mar 05 Javascript
js实现网页的两个input标签内的数值加减(示例代码)
Aug 15 Javascript
微信小程序 页面跳转事件绑定的实例详解
Sep 20 Javascript
基于vue-video-player自定义播放器的方法
Mar 21 Javascript
p5.js临摹动态图形实现方法详解
Oct 23 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
广播爱好者需要了解的天线知识
2021/03/01 无线电
php下批量挂马和批量清马代码
2011/02/27 PHP
php删除页面记录 同时刷新页面 删除条件用GET方式获得
2012/01/10 PHP
深入eAccelerator与memcached的区别详解
2013/06/06 PHP
解析htaccess伪静态的规则
2013/06/18 PHP
php中怎么搜索相关联数组键值及获取之
2013/10/17 PHP
PHP扩展程序实现守护进程
2015/04/16 PHP
thinkphp3.2实现上传图片的控制器方法
2016/04/28 PHP
PHP防止图片盗用(盗链)的方法小结
2016/11/11 PHP
php7 错误处理机制修改实例分析
2020/05/25 PHP
jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
2008/12/25 Javascript
jquery 简单的进度条实现代码
2010/03/11 Javascript
用js实现的自定义的对话框的实现代码
2010/03/21 Javascript
JavaScript实现两个Table固定表头根据页面大小自行调整
2014/01/03 Javascript
jquery 页面滚动到底部自动加载插件集合
2014/01/31 Javascript
JavaScript通过select动态更换图片的方法
2015/03/23 Javascript
javascript基础知识分享之类与函数化
2016/02/13 Javascript
修改Nodejs内置的npm默认配置路径方法
2018/05/13 NodeJs
Vue + Element-ui的下拉框el-select获取额外参数详解
2020/08/14 Javascript
浅谈es6中的元编程
2020/12/01 Javascript
跟老齐学Python之dict()的操作方法
2014/09/24 Python
进一步探究Python中的正则表达式
2015/04/28 Python
在Python的Flask框架中构建Web表单的教程
2016/06/04 Python
利用Python为iOS10生成图标和截屏
2016/09/24 Python
【Python】Python的urllib模块、urllib2模块批量进行网页下载文件
2016/11/19 Python
python模块smtplib实现纯文本邮件发送功能
2018/05/22 Python
浅谈django三种缓存模式的使用及注意点
2018/09/30 Python
python自动化测试之DDT数据驱动的实现代码
2019/07/23 Python
python数据归一化及三种方法详解
2019/08/06 Python
解决Python发送Http请求时,中文乱码的问题
2020/04/30 Python
使用CSS3实现一个3D相册效果实例
2016/12/03 HTML / CSS
大学在校生求职信范文
2013/11/21 职场文书
2015年技术工作总结范文
2015/04/20 职场文书
幼儿园食品安全责任书
2015/05/08 职场文书
有关花店创业的计划书模板
2019/08/27 职场文书
SQL Server数据库的三种创建方法汇总
2023/05/08 MySQL