简介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 读取和设置文档元素的样式属性
Apr 14 Javascript
jQuery-Tools-overlay 使用介绍
Jul 14 Javascript
关于js遍历表格的实例
Jul 10 Javascript
JavaScript splice()方法详解
Sep 22 Javascript
javascript 密码框防止用户粘贴和复制的实现代码
Feb 17 Javascript
JavaScript数组常用操作技巧汇总
Nov 17 Javascript
Angularjs的Controller间通信机制实例分析
Nov 07 Javascript
Bootstrap CSS组件之大屏幕展播
Dec 17 Javascript
微信小程序 向左滑动删除功能的实现
Mar 10 Javascript
JavaScript链式调用实例浅析
Dec 19 Javascript
vue中使用GraphQL的实例代码
Nov 04 Javascript
JS实现判断移动端PC端功能
Feb 21 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数据库连接类~~做成一个分页类!
2006/11/25 PHP
PHP程序61条面向对象分析设计的经验小结
2008/11/12 PHP
PHP 判断常量,变量和函数是否存在
2009/04/26 PHP
php自动加载的两种实现方法
2010/06/21 PHP
Thinkphp使用mongodb数据库实现多条件查询方法
2014/06/26 PHP
php实现自定义中奖项数和概率的抽奖函数示例
2017/05/26 PHP
PHP结合Redis+MySQL实现冷热数据交换应用案例详解
2019/07/09 PHP
判断是否输入完毕再激活提交按钮
2006/06/26 Javascript
jQuery侧边栏随窗口滚动实现方法
2013/03/04 Javascript
EditPlus注册码生成器(js代码实现)
2013/03/25 Javascript
JQuery的Ajax跨域请求原理概述及实例
2013/04/26 Javascript
js中使用replace方法完成某个字符的转换
2014/08/20 Javascript
javascript使用avalon绑定实现checkbox全选
2015/05/06 Javascript
详解AngularJS中的表格使用
2015/06/16 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
2016/12/17 Javascript
使用Vue构建可重用的分页组件
2018/03/26 Javascript
js中的reduce()函数讲解
2019/01/18 Javascript
详解webpack编译速度提升之DllPlugin
2019/02/05 Javascript
JavaScript实现汉字转换为拼音及缩写的方法示例
2019/03/28 Javascript
javascript+HTML5 canvas绘制时钟功能示例
2019/05/15 Javascript
微信小程序开发注意指南和优化实践(小结)
2019/06/21 Javascript
[43:35]TI4 循环赛第二日Liquid vs Fnatic
2014/07/11 DOTA
python教程之用py2exe将PY文件转成EXE文件
2014/06/12 Python
Python性能提升之延迟初始化
2016/12/04 Python
Python将多个excel文件合并为一个文件
2018/01/03 Python
python抓取网页内容并进行语音播报的方法
2018/12/24 Python
如何使用repr调试python程序
2020/02/28 Python
python实现代码审查自动回复消息
2021/02/01 Python
PHP解析URL是哪个函数?怎么用?
2013/05/09 面试题
旅游与酒店管理的自我评价分享
2013/11/03 职场文书
领导检查欢迎词
2014/01/14 职场文书
房地产经营管理专业自荐信
2014/09/02 职场文书
社区五一劳动节活动总结
2015/02/09 职场文书
返乡农民工证明
2015/06/24 职场文书
2015年国庆节寄语
2015/08/17 职场文书
初二数学教学反思
2016/02/17 职场文书