当前位置: 首页 > 面试经验 >

数字马力前端一面 郑州

优质
小牛编辑
74浏览
2024-10-11

数字马力前端一面 郑州

1.自我介绍

2.介绍一下实习项目背景

3.websocket在项目中起到的作用,如何用antv做的动态图

4.讲一下http和https的区别,以及加密过程

5.讲一下http1和http1.1以及http2的区别

6.讲一下协商缓存和强缓存

7.讲一下localstoreage和sessionstorage和cookie

8.讲一下事件循环机制

9.讲一下promise

10.用过哪些promise(all,race),面试官拓展了一个处理并发的promise方法

11.看代码说输出

setTimeout(() =>  {
    console.log("1")
});

new Promise((resolve) => {
    console.log("Promise")
    setTimeout(() =>  {
    console.log("2")
    });
    resolve();
}).then(() => {
    console.log("then")
})

setTimeout(() =>  {
    console.log("3")
}, 50

console.log("log")
输出结果是什么

12.说一下数组的方法

13.数组去重有哪些思路(set,fliter+indexof,reduce)

14.用reduce实现数组求和以及扁平化

const numbers = [1, 2, 3, 4, 5];

const sum = numbers.reduce((accumulator, currentValue) => {
  return accumulator + currentValue;
}, 0);

console.log(sum); // 输出:15

function deepFlatten(arr) {
  // 使用 reduce 方法遍历数组
  return arr.reduce((acc, val) => {
    // 如果当前元素是数组,递归调用 deepFlatten
    if (Array.isArray(val)) {
      return acc.concat(deepFlatten(val));
    }
    // 否则,将当前元素添加到累加器数组中
    return acc.concat(val);
  }, []);
}

15.说一下js中的var,let,const的区别

for(var i=0;i<10;i++){
setTimeout(()=>{
console.log(i)
})
}

for(let i=0;i<10;i++){
setTimeout(()=>{
console.log(i)
})
}

16.判断数据类型的方法

17.原型链有了解吗(实现链式调用)

class Calculator {
  constructor(value) {
    this.value = value;
  }

  add(number) {
    this.value += number;
    return this;
  }

  minus(number) {
    this.value -= number;
    return this;
  }

  multi(number) {
    this.value *= number;
    return this;
  }

  div(number) {
    if (number === 0) {
      throw new Error("Cannot divide by zero.");
    }
    this.value /= number;
    return this;
  }

  pow(number) {
    this.value = Math.pow(this.value, number);
    return this;
  }

}

18.说一下vue2和vue3响应式的区别

19.为什么有proxy,vue2还要用object.defineProperty(没了解过)

20.说一下react的钩子

21.你觉得hooks可以写在条件语句里吗,为什么

22.react组件间通信方式

23.react全局管理工具除了redux(mobx和reroil)

24.介绍一下另一个项目

25.如何实现大文件上传的

26.反问

#数字马力[话题]##数字马力##字节##快手##美团#
 类似资料: