Два отдела, шесть раундов собеседований и, наконец, пропущенный байт

интервью

Два отдела, шесть раундов собеседований и, наконец, пропущенный байт

Эта возможность собеседования появилась совершенно неожиданно.Сначала я отправил свое резюме на Boss, а потом я увидел WeChat внутреннего пушера на Niuke.Я добавил WeChat, чтобы спросить о прогрессе, и я повесил трубку.Внутренний пушер позвонил мне в соответствии с резюме Я спросил о ситуации (инсайдер очень скромный, закончил университет 211 и сказал мне, что его образование также очень общее), а затем связался с HR, чтобы получить возможность для меня это интервью, большое спасибо.

одна сторона

9 июня в 16:00

  • Самостоятельное введение

  • Разница между странной блочной моделью и стандартной блочной моделью

    • Дан фрагмент кода, который говорит о двух полях с синим фоном.

    • Два поля соответственно установлены с box-sizing: border-box, box-sizing: content-box

  • Как активировать BFC

    • Спросите фрагмент кода, каков эффект

    • Будет проблема слияния полей, как решить эту проблему

  • Центрировать по вертикали и горизонтали

  • Что вы знаете о методах обхода массива, какой из них, по вашему мнению, имеет наибольшую производительность?

  • на кого это указывает и как изменить этот пункт

    • // 非原题 非原题 非原题
      const o1 = {
          text: 'o1',
          fn: function() {
              return this.text;
          }
      }
      const o2 = {
          text: 'o2',
          fn: o1.fn
      }
      console.log(o2.fn());
      
  • Какие у вас часто используются React Hooks, опишите функцию

    • напечатай это
  • Вы понимаете разницу между рендерингом на стороне сервера и SPA (одностраничным приложением)?

  • Разница между Commonjs и модулем ES6

    • Знаете ли вы что-нибудь еще, я не знаю (AMD, CMD, UMD...)
  • проблема алгоритма

    • Вопрос не сложный, но мысль сбилась

    • Сначала используйте рекурсию O (n ^ 2)

    • Можно ли его оптимизировать?

    • Измененный на цикл может быть прекращен досрочно

    • Интервьюер: На самом деле ваше мышление сбилось с пути, сложность O(n) можно использовать, использовать стек (мгновенное прозрение), но решать его хорошо

  • риторический вопрос

около 45 минут

Скажите только одну сторону, я подожду вторую сторону в 17:00

две стороны

  • Расскажите о проекте, расскажите о своих основных моментах

    • Основные моменты, оптимизация производительности, как измерить, как оптимизировать, сравнение до и после оптимизации

    • Сеть, Маяк, Производительность, Память, Webpack, Сеть

    • Интервьюер также задаст несколько вопросов, спросив меня, как оптимизировать и каков принцип

  • Вы писали плагины для webpack?

    • нет
  • Посмотрите на код, веса селектора css

  • Алгоритм: бинарное дерево

    • Рекурсивный возврат на тестовом сайте, неоригинальные вопросы
        有这么一个数据结构:
    
        const data = [
          {
            "id": "1",
            "sub": [
              {
                "id": "2",
                "sub": [
                  {
                    "id": "3",
                    "sub": null
                  },
                  {
                    "id": "4",
                    "sub": [
                      {
                        "id": "6",
                        "sub": null
                      }
                    ]
                  },
                  {
                    "id": "5",
                    "sub": null
                  }
                ]
              }
            ]
          },
          {
            "id": "7",
            "sub": [
              {
                "id": "8",
                "sub": [
                  {
                    "id": "9",
                    "sub": null
                  }
                ]
              }
            ]
          },
          {
            "id": "10",
            "sub": null
          }
        ]
        现在给定一个id,要求实现一个函数
    
        findPath(data, id) {
    
        }
        返回给定id在 data 里的路径
        示例:
    
        id = "1" => ["1"]
        id = "9" => ["7", "8", "9"]
        id = "100"=> []
        PS: id 全局唯一,无序
        ```
        
    
  • Расскажите что-нибудь о EventLoop

  • см. код

    • неоригинальный
         async function async1() {
             console.log('async1 start');
             await async2(); 
             console.log('async1 end');
         }
         async function async2() {
             console.log('async2');
             // 注意:这里如果返回 Promise 的话执行顺序就不一样了
         }
         console.log('script start');
         setTimeout(function() {
             console.log('setTimeout');
         }, 0)
         async1();
         new Promise(function(resolve) {
             console.log('promise1');
             resolve();
         }).then(function() {
             console.log('promise2');
         });
         console.log('script end');
    

Около 40 минут, ждать до 18:00 три стороны

Три стороны

  • Самостоятельное введение

  • несколько лет

  • ты откуда?

  • Что случилось с вступительными экзаменами в школу?

    • Нет, у меня просто не было такой идеи в то время
  • Насколько эта степень повлияла на вас?

  • Поговорим о технологии, приведем сцену, бинарный поиск

    • выписано

    • можешь оптимизировать?

    • Что ж, временная сложность — O(logn), а пространственная сложность — O(1), что неплохо (немного запутанно).

    • Нет, эта оптимизация связана не только с временной и пространственной сложностью, она может быть выполнена с инженерной точки зрения.

    • Все еще немного сбит с толку

    • Упомянул меня (почему l и r должны определяться снаружи)

    • Ой, слишком много ассоциаций, поэтому связь высокая, вы имеете в виду это (нет ответа)

    // 当时用的 js,用 ts 只是为了表达的更清晰一点
    interface Barrage {
      time: Number;
      barrage: String;
    }
    const binarySearch = (arr: Barrage[], time: number) => {
      let l = 0;
      let r = arr.length - 1;
      while (l <= r) {
        const mid = (l + r) / 2;
        if (arr[mid].time === time) {
          return arr[mid].barrage;
        } else if (arr[mid].time < time) {
          l = mid + 1;
        } else {
          r = mid - 1;
        }
      }
      return null;
    }
    
    • границы этого массива

    • Я просто смотрел его около десяти секунд, пересечет ли он черту...

    • Интервьюер: Хорошо, давайте начнем со следующего вопроса.

  • Планировщик асинхронных задач, который выполняет до двух асинхронных задач одновременно.

    • Есть идея?

    • Сначала используйте массив, чтобы сохранить его, оцените количество выполнений и извлеките его, когда это необходимо.

    • Хорошо, тогда вы можете написать

    • Результаты написаны давно, начиная через полчаса, а результат еще не написали

    • Логика выполнения наверное прописана, но возвращаемая логика не прописана

    • Напомни мне, я изменил его

    • Напомни мне еще раз, я снова изменил его

    • Логично, что до успеха один шаг (еще одна асинхронность), но я долго сдуру набирал js-код перед консолью C++, а для класса набрал немного, увы...

    • Вопрос времени прервался, действительно было слишком долго писать

  • Зачем изучать интерфейс

  • Как бы вы оптимизировали веб-сайт с десятками миллионов активных пользователей?

    • Я немного запутался.Честно говоря,я ​​понятия не имею о десятках миллионов и десятках людей.Я что-то говорил про первый экран,оптимизацию пользовательского опыта,уменьшение запросов...
  • риторический вопрос

    • совет по учебе

    • Тщательно подумайте, прежде чем задавать вопрос, не делайте ошибок в некоторых местах, которые не должны быть неправильными.

Вопросы, которые задает интервьюер в каждом раунде, очень открытые, они помогают вам сказать это самостоятельно, а затем задать несколько вопросов, основанных на том, что вы сказали.Связаны три стороны, потому что три стороны относительно несчастны, так что две другие стороны меня не очень впечатляют.

Обзор

Асинхронный планировщик задач

Этот механизм вызова асинхронного планировщика задач на самом деле такой же, как метод Proimse, запускающий метод then. метода только тонкая разница.

бинарный поиск

// 这除出来可有可能是个分数啊
const mid = (l + r) / 2; // Math.floor((l + r) / 2);
// l + r 也可能超出数字范围
const mid = l + Math.floor((r - l) / 2);

Это сердце холодное и холодное.Предыдущее Обещание было написано от руки белым цветом, и указатель не был округлен.Голова последовала за водой, и она была полна.

На следующий день hr сказал мне, что собеседование пройдено, но из-за трудностей с одобрением академического предложения я постараюсь изо всех сил помочь мне. Большое спасибо, честно говоря, я очень рад получить такое признание.Отправляйте резюме с 1 марта по настоящее время, Нет колледжа, у вас должна быть степень бакалавра, академические квалификации не совпадают, большинство представлений на BOSS не имеют ответа, и в большинстве компаний нет возможности пройти собеседование Я давно привык к академическим квалификациям.

15 июня я получил уведомление о часе, но оно все еще не сработало...

Но hr запостил это в своей группе, а меня подхватил другой отдел

Исследования и разработки в области взаимных развлечений

17 июня

  • Самостоятельное введение

  • Особенности

    • Конечно, речь идет еще об оптимизации производительности, что убого.
  • Как оптимизировать SEO для сайта

    • Измерено с помощью Lighthouse, оптимизировано на основе рекомендаций Lighthouse

    • заголовок, ключевые слова, описание, семантика, alt для изображения, href для

    • Знаете, что такое SEO (не помню, что сказал интервьюер)?

    • понятия не имею

  • Если вы не используете Lighthouse, Lighthouse нельзя просто протестировать в гугле (наверное такая проблема)

    • WebPageTest, но я им меньше пользуюсь и не копаю глубоко

    • Lighthouse также можно загрузить и использовать через npm.

  • Вы понимаете ССР?

    • Не понял, просто пробежался по следующему делу

    • Возможно, я неправильно понял это в то время, это должно быть просто концепция

  • Как реализовано предварительное разрешение DNS?

    • Процесс разрешения dns?
  • Зачем использовать http2

    • мультиплексирование

    • В чем разница между http1.1 и http2?

    • Сжатие заголовков, мультиплексирование, больше ничего(Вы можете установить приоритет запроса, пуш сервера (Server Push))

    • Знаете ли вы о Server Push?

    • Что, я не слышал об этом (я умственно отсталый, я умственно отсталый, я умственно отсталый...)

  • сессия понятно?

    • Аутентификация входа и разговор о токене

    • Вы понимаете ЖВТ?

    • Я мало что знаю, я знаю только, что T - это жетон

  • Вы понимаете атаки CSRF?

    • Как это предотвратить? Есть ли другой способ?

    • Если не через теги img или script, или если пользователь не нажимает на стороннее соединение, как может быть вызвана атака CSRF?

    • Я не знаю, тогда интервьюер сказал мне что-то о dns hijacking

  • http и https

    • Недостатки http: открытый текст не шифруется, и содержимое может быть перехвачено; если личность общающейся стороны не проверена, она может быть замаскирована, и целостность сообщения не может быть доказана, и оно может быть подделано. https - это HTTP в оболочке SSL, SSL установит безопасную линию связи, идентифицирует сертификат оппонента...

    • Знаете, как содержимое http прослушивается?

    • Я не знаю, но вы можете поймать некоторые инструменты для захвата пакетов

    • Как браузер проверяет сертификат?

      • Говоря о симметричном шифровании и асимметричном шифровании, специфика не ясна.

      • Тогда вы говорите о процессе рукопожатия https?

      • я не знаю

    • Как выбрать между симметричным шифрованием и асимметричным шифрованием?

  • Говорите о кеше cdn?

    • Я не понимаю, вы можете сказать HTTP-кэш?

    • также

    • Cache-Control, Expires (заменено Cache-Control из-за проблем с проверкой), Last-Modified, Etag

    • Скажите заголовок запроса?

    • If-Modified-Since, Cache-Control должен видеть max-age, (не могу вспомнить If-None-Match) Потому что в прошлый раз я просил меня напечатать это, в этот раз я также набрал их все по привычке Ну, Позже я узнал, что не смог посмотреть интервью...

    • Так почему бы вам не подумать об использовании сильного кеша?

    • Если файл относительно большой и не обновляется часто, будет рассматриваться сильный кеш.

    • Что делать, если файл изменен?

    • Ах, используйте no-cache и дайте серверу справиться с этим.

    • Так почему бы не договориться о кеше?

    • ну я тоже подумал

    • Интервьюер: Используйте хеш...

  • Вы понимаете принцип горячей замены модуля?

    • Так как же он сохранил состояние, которое он изменил раньше?

    • понятия не имею

  • Вы знаете, как реализован веб-пакет?

    • понятия не имею
  • Разница между загрузчиками и плагинами

    • Какой жизненный цикл плагинов работает в webpack?

    • Ах, я не знаю (плагины вмешиваются в процесс упаковки и результаты), я говорил о процессе сборки веб-пакета.

  • Что вы знаете о причине белого экрана

    • Как оптимизировать
  • макет в три колонки

    • flex: 1; это составное свойство, а как насчет других свойств?

    • Коэффициент расширения, столбец коэффициента масштабирования, базовый размер (ширина покрытия по оси X, высота покрытия по оси Y)

  • ES6 новые типы

    • Symbol, BigInt

    • Символ когда-либо использовался?

    • Используется при привязке рукописного ввода для предотвращения перезаписи исходных свойств объекта.

  • новые классы ES6

    • Promise

    • Разбираетесь в WeakMap и Map?Расскажите в чем разница?

    • Ключи WeakMap должны быть объектами

    • Вы использовали его?

    • Глубокое копирование используется при оценке наличия повторяющихся ссылок

    • Интервьюер: WeakMap как-то связан со сборкой мусора...

    • MDN: Собственные слабые карты содержат «слабые» ссылки на ключевые объекты. Поскольку такая нативная слабая карта не предотвращает сборку мусора, ссылка на ключевой объект в конечном итоге удаляется. «Слабые» ссылки также избегают сборки мусора значений на карте. Слабые карты — это особенно полезные конструкции при сопоставлении ключей с информацией, которая ценна только в том случае, если ключи не удаляются сборщиком мусора.

1 час 5 минут (остальное не помню)

  • Посмотрите на код, подъем переменных, область видимости на уровне блоков.

  • алгоритм:Строка палиндрома (эта проблема очень распространена), чтобы определить, может ли строка быть палиндромом, удалив не более 1 символа

    • Сначала говорите об идеях, а потом пишите, или сначала пишите, а потом говорите об идеях

    • Ну, давайте сначала обсудим идеи.

    • Чтобы определить, является ли это строкой-палиндромом, я могу перевернуть строку, определить, совпадает ли исходная строка, а затем попробовать каждый случай.

    • Взлом грубой силы можно осуществить, но сложность O(n^2), можете ли вы его оптимизировать?

    • Настройте два индекса для сравнения до и после, буквы с обеих сторон одинаковые и движутся внутрь, разные, ах, разные (застряли)...

    let str = "ABCDABA"
    let l = 0;
    let r = str.length - 1;
    
    • Хочешь, я тебе напомню?

    • Тогда вы дадите мне подсказку.

    • Идея правильная, в разное время вы судите, является ли удаляемый символ строкой-палиндромом.

const reverse = (str) => {
    let temp = '';
    for(let i = 0; i < str.length; i++) {
        temp += str[i];
    }
    return temp === str;
} 
const isSymmetry = (str) => {
    let l = 0;
    let r = str.legnth - 1;
    while(l <= r) {
        if(str[l] === str[r]) {
            l++;
            r--;
        } else {
            if(!reverse(str.substring(l, r)) && !reverse(str.substring(l + 1, r + 1))) {
                return false;
            }
        
        }
    }
    return true;
}

Интервью окончено

На тот момент не было тесткейса, а тестировалось на один кейс меньше.При удалении буквы есть подстрока палиндрома, условия завершения нет, этот код находится в бесконечном цикле, а так как я думал использовать индексный метод для суждения является ли это строкой-палиндромом, то я не должен снова использовать инверсию, чтобы судить, и в этой логике isSymmetry, я не должен повторять написание функции с той же логикой.

const isSymmetry = (str, flag = false) => {
    let l = 0;
    let r = str.length - 1;
    while (l <= r) {
        if (str[l] === str[r]) {
            l++;
            r--;
        } else {
            if (flag) {
                return false;
            }
            if (
                !isSymmetry(str.substring(l, r), true) &&
                !isSymmetry(str.substring(l + 1, r + 1), true)
            ) {
                return false;
            }
            return true;
        }
    }
    return true;
};

Это интервью, которое я не знаю больше всего. Меня очень сильно ругали, и я обнаружил, что у меня много недостатков. Следующий шаг - восполнить эти недостатки. Перейти к интенсивному чтению принципа работы браузера и потренируйтесь в этой колонке.По предыдущему КПД должно быть круто....

Вторая сторона исследований и разработок взаимных развлечений 22 июня

  • 0,1 + 0,2 !== 0,3 почему

  • Вы понимаете IEEE 754?

  • Какие виды алгоритмов (связанные с принципами компьютерной композиции)?

    • Нет, это, компьютерная база действительно относительно слаба, и я раньше не обращал на это внимания.
  • Контроль перегрузки TCP?

    • Не знаю, я только понимаю ситуацию с потерей пакетов и блокировкой.

    • Разница между TCP и UDP

    • Три волны и четыре рукопожатия

  • Расширенное использование TypeScript,Выбрать и пропустить

  • общее понимание

  • webpack примерно такой же, как одна сторона

    • Вы знаете, какие оптимизации сделал devServe?

    • Горячее обновление модуля

    • другое, что

    • я больше не знаю

  • React Fibler

  • Для реализации кастомного хука первым делом было useState, я не спрашивал, всегда думал, что реализовано useState, а потом узнал, что нужно было реализовать кастомный хук...

  • Разговор о обычно используемом типе крючка

  • Используйте регулярное выражение, чтобы получить параметр запроса в URL-адресе

    • Можете ли вы использовать обычный шаблон? Я не знаком с ним

    • Функция разделения неверна, я думал, что ее можно разделить только на два массива, и я планирую инкапсулировать один самостоятельно...Интервьюер в середине зевнул, писал меньше 10 минут, прервался

    • Такой простой вопрос, я как дурак в свое время ответил, если бы я был интервьюером, я бы не хотел встречаться

    let str = "https://juejin.cn?name=zhangsan&age=18&id=123";
    function getUrlParams = ()=> {
    let obj = {};
    for (let i = 0; i < splitStr.length; i++) {
      let temp = splitStr[i].split("=");
      obj[temp[0]] = temp[1];
    }
    return obj;
    }
    console.log(obj);
    
  • ты резюмируешь это интервью

    • Я действительно раньше не обращал внимания на азы компьютера, и планирую систематически его изучать, но, честно говоря, я вполне уверен в своих способностях к программированию, хотя я не люблю запоминать API.

    • Передняя основа на самом деле ладно, но если торопишься, ничего не помнишь, когда торопишься (ты зеваешь, можно я не тороплюсь, я уже паниковал, в этот раз, мое сердце холодное), то я отдам его вам Дебют

  • обход порядка n-арного уровня дерева

    const levelOrder = (root) => {
      while (root.length) {
        const temp = root.shift();
        console.log(temp.val);
        for (let i = 0; i < temp.children.length; i++) {
          root.push(temp.children[i]);
        }
      }
    };
    
     const root = [
      {
        val: 1,
        children: [
          {
            val: 3,
            children: [],
          },
        ],
      },
      {
        val: 2,
        children: [
          {
            val: 4,
            children: [],
          },
        ],
      },
    ];
    

1 час 10 минут

Основы компьютера очень важны, и вы должны систематически изучать их на более позднем этапе.Регулярные выражения используются слишком мало, а язык C используется в соревнованиях, поэтому я никогда не любил запоминать API.Я сам упаковал его, и теперь Память у меня не долгая.Увы сердце было холодное в то время.Вечером хр сказал что я его прошел.В пятницу три раза...

Три аспекта исследований и разработок в области взаимных развлечений

25 июня

const twoSum = (arr, target) => {
    const obj = {};
    for(let i = 0; i < arr.length; i++) {
        if (obj[arr[i]] != null) {
            return [obj[arr[i]], i];
        } else {
            obj[target - arr[i]] = i;
        }
    }
    return [];
};
  • вернуть все дела
const twoSum = (arr, target) => {
    const res = [];
    for(let i = 0; i < arr.length - 1; i++) {
        for(let j = i + 1; j < arr.length; j++) {
            if(arr[i] + arr[j] === target) {
                res.push([i, j]);
            }
        }
    }
    return res;
}
twoSum([2,7,11, 7], 9);

// 打印个这个 0, 1, 0, 3

Niu Ke расширил мой массив, я тогда немного запутался, что это такое, еще раз проверил код, нет проблем, привет, можно открыть консоль и отладить?

image.png

  • Проанализируйте временную сложность, можете ли вы ее оптимизировать?

Когда начался последний вопрос, я все думал, как его оптимизировать, ведь я несколько раз проходил собеседование, и O(n^2) точно позволит мне его оптимизировать.

const twoSum = (arr, target) => {
    let obj = {};
    let res = [];
    for(let i = 0; i < arr.length; i++) {
        if(obj[arr[i]] != null) {
            let temp = obj[arr[i]];
             for(let j = 0; j < temp.length; j++) {
                 res.push([temp[j], i]); // res.push([temp[j], i); 当时这里少打一个 ]
             }
        } else {
            let temp = target - arr[i];
            obj[temp] = obj[temp] ? [...obj[temp], i] : [i];
        }
    }
    return res;
}

image.png

Я не знаю, отличаются ли условия, указанные интервьюером, или что происходит.Информация об ошибке каждый раз разная.Вначале отдел видеоархитектуры допустил ошибку в интервью.Подсказка очень подробная.Посмотрите еще раз на код.Логика правильная,тогда я подал заявку на открытие консоли

image.png

Потом я начал объяснять идею, поднял глаза и увидел, что времени уже 25 минут, писать долго.

  • Как давно ты в школе?

  • как выучить фронтенд

  • Расскажите об основных моментах проекта

    • Я говорил о некоторой оптимизации производительности, но интервьюер не спросил меня.Что касается http2, проблемы блокировки потери пакетов TCP, и спросил меня, есть ли способ решить эту проблему блокировки потери пакетов, кажется, что это не может быть решена или очень сложна, потому что http3 UDP, который напрямую используется TCP, был заброшен Каковы характеристики UDP?
  • Как проверить данные закрытия

  • На что обратить внимание при внедрении компонента рекомендаций по поиску

    • В моей библиотеке компонентов есть ссылка на этот компонент,Стабилизатор

    • Как отслеживать изменения данных

    • Является ли значение ввода, onChange в React,

    • Например, если я сначала ввожу а, а затем ввожу б, запрос и возвращаюсь к вам, что делать

    • Подумав об этом, серверная часть вернет значение моего запроса, и я приму решение о том, обновлять ли список рекомендаций.

    • это не проходит через заднюю часть

    • Ну, без понятия (запрос можно отменить...)

  • Как много знает вебпак

    • Я уже спрашивал в интервью, но главное, чтобы снова использовать уровень.Я не понял принцип в глубине.В основном я все еще хочу

    • мммммммммммммммммммммммммммммммммммммммммммммммммммммммм...

  • Самые большие преимущества и недостатки

  • Я вижу, вы опросили другие отделы, почему?

    • Образование

    • Ах!(Я чувствую, что интервьюер немного удивлен, его глаза расширились)

    • У меня есть высшее образование, а потом предложение не проходит одобрение

    • ой

  • риторический вопрос

    • Обучение и технические консультации

    • Я думаю, что вы можете хорошо учиться.Технически, вы должны сначала заложить основу и прочитать некоторые учебники.

48 минут

Затем сбросить

// 我当时觉得最差的情况是这个 
twoSum([2, 2, 2, 7], 9);
// n + n - 1
// 但一半一半才最差, 
twoSum([2, 2, 7, 7], 9);
// (n / 2) + (n/2) * (n/2)
// 而且我还忽略了一种情况, 这个 else 不应该加
twoSum([2, 7, 2, 7], 9);
const twoSum = (arr, target) => {
    let obj = {};
    let res = [];
    for(let i = 0; i < arr.length; i++) {
        if(obj[arr[i]] != null) {
            let temp = obj[arr[i]];
             for(let j = 0; j < temp.length; j++) {
                 res.push([temp[j], i]);
             }
        }
        let temp = target - arr[i];
        // obj[temp] = obj[temp] ? [...obj[temp], i] : [i];
        // 用 push 更好一点
        obj[temp] ? obj[temp].push(i) : obj[temp] = [i];
    }
    return res;
}

После того, как были написаны вопросы интервью, я уже не так нервничала, но чувствовала, что вопросы писались долго, а интервьюер не задавал никаких вопросов. Казалось, что мне не о чем его спросить. Интервьюер тоже болтал потом Зеваю, может быть, я задержал их обеденный перерыв (два часа дня).

28 июня, три дня, никаких новостей, я спросил hr, и, конечно же, я не прошел.

технический центр

В начале августа я участвовал в молодежном тренировочном лагере Bytes.По некоторым причинам у меня нет понятия стажировки и набора в школу.Молодежный тренировочный лагерь помог мне продвинуть позицию стажировки, и потому что я был в 22-м классе , So hr спросил меня, уверен ли я, что хочу подать заявку на стажировку, когда договаривался о собеседовании. Я спросил о разнице между стажировкой и набором в школу, и я изменил его на набор в школу. В результате набор в школу был одобрен, и, в конце концов, это была очная стажировка. Это уже третий раз, когда я беру интервью у байтов, но яповесить трубку.

одна сторона

Поскольку я только что поехал на стажировку в начале июля и не планировал покидать компанию, время собеседования относительно позднее.

9 сентября 20:00

  • CSS реализует блок, высота которого составляет половину ширины родительского блока, который можно изменить пропорционально
    • зум
  • Как рассчитываются значения padding-left и padding-top
    • Относительно родительского элемента... не помню, поехали (ширина родительского элемента)
  • сгибать Jiugongge
  • преобразование типа отшельника
  • опрос событий
    • Вы понимаете опрос событий Node.js?
      • не понимаю
  • xss-атака
  • Процесс рендеринга страницы
  • Будет ли css блокировать рендеринг дерева DOM?
  • Неизменяемые значения в React
  • Ограничения хуков
  • Принцип работы webpack HMR
  • процесс сборки вебпака
  • написать код
    • Реализовать синтаксический анализ, аналогичный шаблонным строкам.
      • для петли используется
      • Интервьюер: Обычное...
      • Что ж, пошли (я ходил на него после интервью до этого, но до сих пор не могу вспомнить)
    • Асинхронное сложение, при условии, что в устройстве нет сложения, его можно вычислить только данным методом
      • Интервьюер: Вы не можете использовать цикл for, у этого устройства нет дополнений,
      • Ну, тогда я использую индексы для получения данных?
      • Затем интервьюер снял ограничение
      • После написания интервьюер сказал несколько моментов и спросил меня, как оптимизировать
      • По подсказке я сказал как добиться этой оптимизации
  • Разница между git pull и git fetch
  • Есть некоторые модификации локально, хочу выложить предыдущий код
    • git stash

две стороны

16 сентября в 15:00

  • Как вы обычно выполняете внутреннюю отладку?

  • Как решить кроссдоменность

    • proxy
    • онлайн-среда
    • nginx
    • Другие решения для междоменных
  • cookie ... (забыл, авторизация входа)

    • Вы все еще знаете эти поля cookie?
      • httpТолько не знаю
      • Может ли настройка безопасности интервьюера передавать этот файл cookie только через https
  • Запросы между источниками могут содержать файлы cookie.

    • Да, CSRF-атака
    • как предотвратить
  • Каковы плюсы и минусы получения

  • Получение может быть отменено

    • Сам по себе он не предусмотрен, но его можно отменить другими способами, я так и не понял
  • Коды состояния HTTP

    • 201, 206 Вы понимаете?
      • Интервьюер рассказал о ситуации со скачиванием файлов
  • HTTP-кэш

  • Как вы оптимизируете сайт для вас

  • Формат глубокого подчеркивания кода становится верблюжьим

     {
    
      "game_id": 123,
    
      "game_name": "halo"
    
    }
    
    {
    
      "gameId": 123,
    
      "gameName": "halo"
    
    }
    

Три стороны

22 сентября 21:00

  • Интервьюер представился

    • Звучит знакомо, я слышал, как учитель говорил об этом во время прямого эфира молодежных сборов.
  • Что, по вашему мнению, делают React Hooks

  • Ваши любимые крючки

    • Я часто использую React-Redux Hooks, мне есть что сказать?

    • Если вы считаете, что понимаете хорошо, вы можете сказать

    • Ну, я не знаю, как это работает

    • Поскольку раньше я спрашивал об одной стороне и о том, как ее использовать, точка проверки трехстороннего вопроса изменилась, и я не осознавал этого в то время.

  • Посмотрите, что нового в React 18

    • Судя по официальному отчету, жизненный цикл React 18
  • Как вы думаете, что лучше в HTTP?

    • С кем это по сравнению? (Я немного смущен, я не понимаю)

    • Интервьюер руководил

    • Я думаю, что гибридный механизм шифрования HTTPS довольно изобретателен, поэтому я сказал это (я не заметил этого и отвлекся).

    • Итак, если вы не учитываете производительность, можете ли вы всегда использовать HTTPS для отправки запросов?

    • Я не уверен

    • Интервьюер: длина шифрования ограничена

  • Тогда что вы думаете, что HTTP плохо спроектирован?

    • Ах... без понятия

    • Интервьюер немного подсказал и сказал Expire

    • Я сказал, почему Expire заменили

    • Любая причина, кроме запрета

    • точность

  • Забыл, как сказать HTTP2, я сказал HTTP2, чтобы не заставлять использовать HTTPS?

    • Интервьюер: Тогда почему вы думаете, что HTTP2 должен принудительно использовать HTTPS?

    • Я проанализировал характеристики HTTP2 и HTTPS и ничего общего с этим не нашел.

    • Потом интервьюер долго рассказывал мне о каких-то внутренних реализациях байтов

  • Интервьюер дал мне несколько советов:

    • Интервьюер сказал, что после прочтения резюме интервью, которое я написал ранее, он понял меня и дал несколько советов.

    • Собеседование не заботится о том, что вы не можете сделать, и оно не убьет вас только потому, что вы не можете задать один или два вопроса. Это слепое пятно, которое позволяет кандидатам иметь знания. что вы можете сделать и каковы ваши основные моменты.

    • Не спешите отвечать на какие-либо вопросы, сначала подумайте, как мы обычно делаем, не быстрее других, а лучше других.

  • ...говорим о стажировках

    • После болтовни и болтовни я сказал что-то, что очень впечатлило интервьюера.Позже я спросил причину отказа.Интервьюер снова поболтал со мной на эту тему.

    • Я сказал, что это было не так, как я себе представлял, собеседование было сложным и ярким, я думал, что в работе будет много вызовов, но на самом деле я чувствую, что писать код самостоятельно — это не сильно отличается.

    • Интервьюер много говорил об этом вопросе и

  • на риторический вопрос

    • стандарты набора в школу

      • Школьный рекрутинг не будет уделять столько внимания проектному опыту, который эквивалентен примерно одному-двум годам социального рекрутинга.
    • Сколько времени нужно, чтобы пройти стажировку

      • Коррекция может быть начата через два месяца
    • база это то

      • где вы ожидаете
      • Ханчжоу, я сейчас в Ханчжоу
      • В Ханчжоу нет команды, а в Пекине, Шанхае, Гуанчжоу и Шэньчжэне есть, но бизнес другой, тебе не кажется?
      • В других городах чуть позже
      • о том, как поздно

Я получил письмо с отказом на следующий день, и я трижды проходил собеседование, но предложение было одобрено один раз, но меня не одобрили дважды. спросите причину. Я в электронном письме в то время не включал тему, потому что я не знал, какую тему писать, это сталоспам, но интервьюер все равно прислал мне свой вичат и звонил мне минут 20. Этого я действительно не ожидала.Я думала, что интервьюер не ответит на письмо или просто ответит до конца, большое спасибо этому интервьюеру.

Интервьюер сказал, что объективная причина в том, что должность нужно набрать в Пекине как можно скорее, а вторая в том, что я чувствую, что изменил свой запрос, но шанс стать постоянным очень мал.Субъективная причина это яМне не хватает мышления и глубины, я надеюсь, что я стремлюсь к конечному, интервьюер сказал мне, что я чувствую небольшую разницу между моей работой и моим обычным написанием кода.Это предложение более глубокое и дало мне некоторые указания и советы в этом отношении.