简介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程序之undefined篇(中)
Nov 23 Javascript
重构Javascript代码示例(重构前后对比)
Jan 23 Javascript
JS实现刷新父页面不弹出提示框的方法
Jun 22 Javascript
关于JS中的方法是否加括号的问题
Jul 27 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
Apr 14 Javascript
浅谈Vue.js 1.x 和 2.x 实例的生命周期
Jul 25 Javascript
js使用generator函数同步执行ajax任务
Sep 05 Javascript
解决循环中setTimeout执行顺序的问题
Jun 20 Javascript
jQuery实现基本淡入淡出效果的方法详解
Sep 05 jQuery
vue 实现cli3.0中使用proxy进行代理转发
Oct 30 Javascript
JavaScript中break、continue和return的用法区别实例分析
Mar 02 Javascript
js实现表格单列按字母排序
Aug 12 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 日期时间函数的高级应用技巧
2009/10/10 PHP
phpmyadmin 常用选项设置详解版
2010/03/07 PHP
用PHP的超级变量$_GET获取HTML表单(Form) 数据
2011/05/07 PHP
php中数据库连接方式pdo和mysqli对比分析
2015/02/25 PHP
PHP数组操作实例分析【添加,删除,计算,反转,排序,查找等】
2016/12/24 PHP
JavaScript 在网页上单击鼠标的地方显示层及关闭层
2012/12/30 Javascript
jquery写个checkbox——类似邮箱全选功能
2013/03/19 Javascript
JavaScript实现动态创建CSS样式规则方案
2014/09/06 Javascript
EasyUI中combobox默认值注意事项
2015/03/01 Javascript
jquery插件orbit.js实现图片折叠轮换特效
2015/04/14 Javascript
JS中产生标识符方式的演变
2015/06/12 Javascript
bootstrap基础知识学习笔记
2016/11/02 Javascript
基于bootstrap的文件上传控件bootstrap fileinput
2016/12/23 Javascript
JS简单获得节点元素的方法示例
2018/02/10 Javascript
jQuery实现的导航条点击后高亮显示功能示例
2019/03/04 jQuery
JS多个异步请求 按顺序执行next实现解析
2019/09/16 Javascript
微信小程序实现按字母排列选择城市功能
2019/11/25 Javascript
vue实现列表滚动的过渡动画
2020/06/29 Javascript
[01:08:32]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第二场 1月18日
2021/03/11 DOTA
Python获取服务器信息的最简单实现方法
2015/03/05 Python
Python中的super用法详解
2015/05/28 Python
python3+PyQt5实现自定义分数滑块部件
2018/04/24 Python
python破解zip加密文件的方法
2018/05/31 Python
Django框架视图介绍与使用详解
2019/07/18 Python
Python如何根据时间序列数据作图
2020/05/12 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
2020/08/04 Python
html5教程画矩形代码分享
2013/12/04 HTML / CSS
Amara德国:家居饰品、设计师品牌和豪华礼品
2019/05/20 全球购物
大学生社会实践活动总结
2014/07/03 职场文书
运动会搞笑广播稿
2014/10/14 职场文书
2014年合同管理工作总结
2014/12/02 职场文书
春秋淹城导游词
2015/02/11 职场文书
八年级作文之我的母亲
2019/12/10 职场文书
redis通过6379端口无法连接服务器(redis-server.exe闪退)
2021/05/08 Redis
MySQL 数据丢失排查案例
2021/05/08 MySQL
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
2021/06/29 Python