有的同学可能碰见这样的面试问题
直接回答结果 [object Object]
但为什么是什么这个结果呢
很多同学可能知道 Object.prototype.toString({}) 会返回 [object Object]
我们知道首先 “+” 号运算 在js中分为 数字运算和字符串连接
[] + {} 这两个明显不属于数字运算,因此分为字符串连接
但是在JS中字符串连接,首先需要把对象转换成 string类型
因此
[].toString() 返回 ""
{
}.toString() 返回 [object Object]
很多童鞋可能纳闷 为啥数组返回的是 “” 空字符串
那是因为 数组中的 Array.prototype.toString() 方法覆盖了 Object.prototype.toString
不然 Object.prototype.toString([]) 返回的是 [object Array]
在Array.prototype.toString 实现方法是用数组的 join()方法实现的,默认使用逗号拼接数组中的元素
因此
let arr = [1,2,3,4,5]
arr.toString() // 输出 "1,2,3,4,5"
这下知道为啥是这个结果了吧
要我说其实这个问题 并没有什么技术含量,工作中可能整个职业生涯也不会写出这样的业务代码来 说是考察基础知识
碰见这样的公司 慎重考虑 进去吧
关注我持续更新 前端知识