常见的场景题(读代码)

gardenOfCicy / 2024-11-09 / 原文

  1. 以下代码的输出?(函数修改形参能否影响实参?)

    函数是赋值传递。num和obj的值是不会被改变的。 所以输出的num还是100,obj仍然是{name: '双越'}。

  2. 手写convert函数,将数组转为树(TS写的)

    基础问题!不会的话先去恶补JS版本的数据结构!
    树节点:

    如何找到parentNode?快速找到

    我先跳过这题......

  3. 😌以下代码输出什么?(原型和原型链


    不要去读代码,而是要去模拟JS引擎执行代码~
    看到函数,没有执行,就不管它里面的内容,直到看到它被调用了再去看它里面写了什么。

  4. 🤨一道Promise执行顺序问题(异步 EventLoop)

    答案是:0 1 2 3 4 5 6
    ❗❗ then交替执行


    ❗ 返回一个新的Promise会慢两拍

    👇再看一个例子(记住“慢两拍”and“交替执行”)

  5. 以下代码输出啥?(值类型和引用类型

    看个区别:


    a.x的.要比赋值权重要高。先初始化该属性,再对该属性进赋值。

    倒序赋值!

    a到后面只指向{n: 2}了。

  6. 以下代码输出啥


  • 打印 c
  • Symbol类型不会覆盖原有的属性

    打印 b

  • 打印 c,被覆盖了。


    但是Map的key可以是各种类型。