今天的 JavaScript React Dev 面试题

2025-06-10

今天的 JavaScript React Dev 面试题

我刚才在采访中问过这些问题

const spaceShip = {
  name: 'Chandrayan',
  get1: () => {
    console.log(this.name);
  },
  get2: function (){
    console.log(this.name);
  }
}

spaceShip.get1()
spaceShip.get2()
Enter fullscreen mode Exit fullscreen mode

现在我知道 spaceShip.get1() 不会打印出任何东西,但如果我希望它以与 get2() 完全相同的方式工作,我该如何绑定它?

我尝试this先进行类似 get1.bind(spaceShip.this) 或 get1.bind(spaceShip) 的绑定,然后执行,但我不确定会发生什么。

  • 然后在第二个问题中
const person = this.state.person;

const person = {...this.state.person};
Enter fullscreen mode Exit fullscreen mode

如果我们改变 person.name 的值,我知道在第二种情况下,值会改变,因为 person 是一个全新的对象

但在第一种情况下它也会改变 this.state.person 中的值吗?

  • 有人问我如何编写轮询函数,我不知道,但我仍然尝试说
function myPoll(fn, timeInterval, endTime){

var checkCondition = function(resolve, reject) {
        var result = fn();
        if(result) {
            resolve(result);
        }
        else if (// for the time checking) {
            setTimeout(checkCondition, interval, resolve, reject);
        }
        else {
            reject(error);
        }
    };
}
Enter fullscreen mode Exit fullscreen mode

但后来他却把它掉了。

  • 第四个问题是为 Promise.all 编写 polyfill
Promise.all([pr1, pr2, pr3]).then().catch();
var resolvedPromises = [];
[pr1, pr2, pr3].map((item, resolve, reject) => {
    var result = item();
    if(result){
       resolvedPromises.push(resolve(result));
    }
    else {
        return reject(result);
    }
})


Enter fullscreen mode Exit fullscreen mode

所以我试着解释我将把承诺存储在结果中,然后将其推入数组,并且在所有迭代结束时,所有承诺的解析值都将存储在该数组中。

但后来他又问,如果承诺没有得到解决或拒绝,那该怎么办呢?所以我这样修改了代码

var resolvedPromises = [];
[pr1, pr2, pr3].map((item, resolve, reject) => {
   item().then((result) => {
        if(result){
            resolvedPromises.push(resolve(result));
        }
    });  //pr1;
    else {
        return reject(result);
    }
})
Enter fullscreen mode Exit fullscreen mode

然后他也不知道该问什么,但面试就这样结束了,我甚至都没给他们提问的机会。看来今天我不应该指望赢了。

鏂囩珷鏉ユ簮锛�https://dev.to/oathkeeper/today-s-interview-question-4hm3
PREV
编写更好的 Vue JS 代码简介结论
NEXT
Redux 数据流和 React 组件生命周期