[1,2,3].toString()和{a:10}.toString()分别打印什么,为什么
先思考🤔🤔🤔,下面有答案,然后看看你答案对了么
打印什么重要,为什么更重要
{a:10}.toString()
解析:
{a:10}.toString()这个大家熟悉么,
不熟悉,一脸懵,回顾一下
https://segmentfault.com/a/11...
这里面的判断数据类型的方法,找到感觉了没
Object.prototype.toString.call(data);
官方的定义:
每个对象都有一个toString()
方法,当该对象被表示为一个文本值时,或者一个对象以预期的字符串方式引用时自动调用。默认情况下,toString()
方法被每个Object
对象继承。如果此方法在自定义对象中未被覆盖,toString()
返回 "[object _type_]",其中type
是对象的类型。
附上地址:https://developer.mozilla.org...
{a:10}它的类型是object,所以打印的是"[object Object]"
[1,2,3].toString()
解析:
很多人知道这个是打印1,2,3;但是看了上面的解释又会迷惑数组不也是对象么,不是应该和上面一样么,怎么误打误撞对了。你仔细品上面的定义:如果此方法在自定义对象中未被覆盖,
没错Array有自己的方法,它覆盖了Object
官方定义:Array
对象覆盖了Object
的toString
方法。对于数组对象,toString
方法连接数组并返回一个字符串,其中包含用逗号分隔的每个数组元素。
[1,2,3].toString()所以打印的是====="1,2,3"
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。