简介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实现两个大数(整数)相乘
Apr 28 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
May 04 Javascript
javascript实现十六进制颜色值(HEX)和RGB格式相互转换
Jun 20 Javascript
简单实现JS对dom操作封装
Dec 02 Javascript
浅谈JavaScript for循环 闭包
Jun 22 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
Feb 27 Javascript
javascript实现圣旨卷轴展开效果(代码分享)
Mar 23 Javascript
Node.js中看JavaScript的引用
Apr 22 Javascript
(模仿京东用户注册)用JQuery实现简单表单验证,初学者必看
Jan 08 jQuery
详解JS实现简单的时分秒倒计时代码
Apr 25 Javascript
vue-router路由模式详解(小结)
Aug 26 Javascript
vuex存取值和映射函数使用说明
Jul 24 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使用SAE原生Mail类实现各种类型邮件发送的方法
2016/10/10 PHP
PHP面向对象自动加载机制原理与用法分析
2016/10/14 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
2016/10/18 PHP
HTML DOM的nodeType值介绍
2011/03/31 Javascript
中国地区三级联动下拉菜单效果分析
2012/11/15 Javascript
javascript修改IMG标签的src问题
2014/03/28 Javascript
JavaScript异步加载浅析
2014/12/28 Javascript
Jquery中request和request.form和request.querystring的区别
2015/11/26 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(二)
2015/12/10 Javascript
BootStrap中Table分页插件使用详解
2016/10/09 Javascript
Json按某个键的值进行排序
2016/12/22 Javascript
JS常用正则表达式总结【经典】
2017/05/12 Javascript
vue单页应用中如何使用jquery的方法示例
2017/07/27 jQuery
解决vue组件中使用v-for出现告警问题及v for指令介绍
2017/11/11 Javascript
深入理解Promise.all
2018/08/08 Javascript
vue中实现上传文件给后台实例详解
2019/08/22 Javascript
vue的滚动条插件实现代码
2019/09/07 Javascript
jQuery/JS监听input输入框值变化实例
2019/10/17 jQuery
JavaScript实现简单贪吃蛇效果
2020/03/09 Javascript
JS实现网页烟花动画效果
2020/03/10 Javascript
[01:51]2018年度CS GO最具人气外援-完美盛典
2018/12/16 DOTA
python脚本实现统计日志文件中的ip访问次数代码分享
2014/08/06 Python
python实现对一个完整url进行分割的方法
2015/04/29 Python
python中as用法实例分析
2015/04/30 Python
使用Python向C语言的链接库传递数组、结构体、指针类型的数据
2019/01/29 Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
2019/02/14 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
2019/02/22 Python
python使用正则来处理各种匹配问题
2019/12/22 Python
Django实现随机图形验证码的示例
2020/10/15 Python
细说CSS3中box属性中的overflow-x属性和overflow-y属性值的效果
2014/07/21 HTML / CSS
美国著名首饰网站:BaubleBar
2016/08/29 全球购物
购买大码女装:Lane Bryant
2016/09/07 全球购物
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
2012/05/30 面试题
法定代表人授权委托书范文
2014/09/22 职场文书
为什么你写的height:100%不起作用
2021/05/10 HTML / CSS
PyMongo 查询数据的实现
2021/06/28 Python