js中[] + {}等于什么,以及为什么是这个结果(面试题)

有的同学可能碰见这样的面试问题
直接回答结果 [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"

这下知道为啥是这个结果了吧

要我说其实这个问题 并没有什么技术含量,工作中可能整个职业生涯也不会写出这样的业务代码来 说是考察基础知识

碰见这样的公司 慎重考虑 进去吧

关注我持续更新 前端知识

相关推荐

  1. jsreduce方法什么

    2024-02-02 05:04:01       66 阅读
  2. 【Flutter 面试什么BuildContext,它有什么

    2024-02-02 05:04:01       33 阅读
  3. 【Redis】什么单线程?为什么这么快呢?

    2024-02-02 05:04:01       29 阅读
  4. Nue.js 什么

    2024-02-02 05:04:01       47 阅读
  5. Node.js什么

    2024-02-02 05:04:01       43 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-02 05:04:01       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-02 05:04:01       97 阅读
  3. 在Django里面运行非项目文件

    2024-02-02 05:04:01       78 阅读
  4. Python语言-面向对象

    2024-02-02 05:04:01       88 阅读

热门阅读

  1. 【Django-ninja】django-ninja的hello world

    2024-02-02 05:04:01       46 阅读
  2. QT仪表盘小工具

    2024-02-02 05:04:01       56 阅读
  3. RSTP保护机制

    2024-02-02 05:04:01       58 阅读
  4. Oracle RMAN全备脚本(正式测试可行)

    2024-02-02 05:04:01       50 阅读
  5. web worker

    2024-02-02 05:04:01       44 阅读
  6. star原则

    2024-02-02 05:04:01       54 阅读
  7. XSS绕过方法总结

    2024-02-02 05:04:01       57 阅读
  8. mybatis中使用小于号

    2024-02-02 05:04:01       54 阅读