字节跳动前端一二面面试题

一面:首先就是自我介绍了

口头回答题

1.CSS选择器的优先级
2.说一说进程和线程
3.判断js的基本类型的方法
4.数组和链表的区别
5.问了一点项目相关的,我写了axios,面试官就问了axios相关的细节
6.等等忘了

下面是手写题

1.鼠标点击获取ul中li中的文字


<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Documenttitle>
  head>
  <body>
    <ul>
      <li>123li>
      <li>123li>
      <li>123li>
      <li>123li>
      <li>123li>
    ul>
  body>
  <script>
    let liArray = document.querySelectorAll("li");
    liArray.forEach((element) => {
      element.addEventListener("click", function () {
        console.log(this.innerHTML);
      });
      console.log(element);
    });
  script>
html>

2.手写一个new函数:

function New(fn, ...args) {
  let obj = Object.create(fn.prototype);
  let res = fn.apply(obj, args);
  return res instanceof Object ? res : obj;
}

3.手写一个定时器:每隔一段时间执行一个函数 执行一定次数

function repeat(func, times, wait) {
  return function (content) {
    var count = 0;
    var interval = setInterval(function () {
      count += 1;
      func(content);
      if (count === times) {
        clearInterval(interval);
      }
    }, wait);
  };

4.反转一个链表:

var reverseList = function (head) {
        let p = null;
        let newHead = null;
        while(head){
            p = head.next;
            head.next = newHead;
            newHead = head;
            head = p;
        }
        return newHead;
}

剑指 Offer 24. 反转链表

最后反问环节,跟面试官谈了谈node.js的,聊的还不错哈哈哈!

二面:

一上来就是自我介绍了
二面面试官说他有事,会就说会,不会就说不会,他赶时间。其它什么都没问。
直接上题:
1.看代码,说输出
具体涉及就是JS的原型链和函数的this指针问题了
2.场景题:有10万个电话号码,问怎么做到输入一个数字,提示下一个合法的数字。
我。。。。。。没想出来;后来百度也找不到
3.扑克牌问题:有5张牌,判断是不是同花顺
4.三叉树
竟然考到了三叉树,平时练习的都是二叉树的,哭了

毫不意外,挂了

你可能感兴趣的:(前端面试题)