alert():
- 有阻塞作用,不点击确定,后续代码无法继续执行
-
alert()只能输出string,如果alert输出的是对象会自动调用toString()方法
e.g. alert([a,b,c]);//a,b,c
-
alert不支持多个参数的写法,只能输出第一个值
e.g. alert(1,2,3);//1
console.log():
-
在打印台输出
-
可以打印任何类型的数据
e.g. console.log([a,b,c]);//[a,b,c]
-
支持多个参数的写法
e.g. console.log(1,2,3)// 1 2 3
关于原型链中的toString()输出问题:
let e1= { n : 1, valueOf : function(){ return this.n + 4 }, toString : function(){ return this.valueOf() + 5 } } console.log('e1==0 : ', e1==0) console.log('+e1 : ', +e1) console.log('e1 : ', e1) console.log('e1.toString() : ', e1.toString()) alert(e1) //10
运行结果:
原因:console.log()可以打印任何类型的数据。而 alert() 只能输出string。如果alert输出是对象会自动调用 toString() 方法。如果想 console.log() 输出的与alert相同,需要调用 toString() 。