简介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 div 遮罩层封锁整个页面
Jul 10 Javascript
jquery选择器排除某个DOM元素的方法(实例演示)
Apr 25 Javascript
node.js中的fs.statSync方法使用说明
Dec 16 Javascript
jquery点击改变class并toggle的实现代码
May 15 Javascript
js事件冒泡与事件捕获详解
Feb 20 Javascript
JS实现前端缓存的方法
Sep 21 Javascript
解决vue-cli创建项目的loader问题
Mar 13 Javascript
在vue中使用G2图表的示例代码
Mar 19 Javascript
小程序封装路由文件和路由方法(5种全解析)
May 26 Javascript
对layui中table组件工具栏的使用详解
Sep 19 Javascript
JavaScript实现简单的弹窗效果
May 19 Javascript
Vue自定义表单内容检查rules实例
Oct 30 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
ThinkPHP中的常用查询语言汇总
2014/08/22 PHP
php生成验证码函数
2015/10/20 PHP
PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】
2019/06/14 PHP
可缩放Reloaded-一个针对可缩放元素的复用组件
2007/03/10 Javascript
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
如何让DIV可编辑、可拖动示例代码
2013/09/18 Javascript
使用javascript控制cookie显示和隐藏背景图
2014/02/12 Javascript
基于NodeJS的前后端分离的思考与实践(五)多终端适配
2014/09/26 NodeJs
Node.js使用Angular简单示例
2018/05/11 Javascript
JavaScript数据结构与算法之二叉树插入节点、生成二叉树示例
2019/02/21 Javascript
小程序异步问题之多个网络请求依次执行并依次收集请求结果
2019/05/05 Javascript
Mpvue中使用Vant Weapp组件库的方法步骤
2019/05/16 Javascript
浅谈ECMAScript 中的Array类型
2019/06/10 Javascript
vue-router的钩子函数用法实例分析
2019/10/26 Javascript
vue-router路由懒加载及实现的3种方式
2021/02/28 Vue.js
python 脚本生成随机 字母 + 数字密码功能
2018/05/26 Python
Python实现合并两个列表的方法分析
2018/05/28 Python
Django中的文件的上传的几种方式
2018/07/23 Python
pymongo中聚合查询的使用方法
2019/03/22 Python
Python GUI编程 文本弹窗的实例
2019/06/11 Python
tensorflow 获取所有variable或tensor的name示例
2020/01/04 Python
在Tensorflow中查看权重的实现
2020/01/24 Python
python实现文件分片上传的接口自动化
2020/11/19 Python
python 实现的车牌识别项目
2021/01/25 Python
台湾前三大B2C购物网站:MOMO购物网
2017/04/27 全球购物
介绍一下gcc特性
2012/01/20 面试题
医药专业推荐信
2013/11/15 职场文书
个人贷款担保书
2014/04/01 职场文书
企业管理标语
2014/06/10 职场文书
运动会演讲稿50字
2014/08/25 职场文书
研究生导师评语
2014/12/31 职场文书
药品销售内勤岗位职责
2015/04/13 职场文书
有关朝花夕拾的读书笔记
2015/06/29 职场文书
Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境
2021/03/29 PHP
html+css实现分层金字塔的实例
2021/06/02 HTML / CSS
Node.js实现断点续传
2021/06/23 Javascript