Помните собеседование старшего фронтенд-разработчика?

интервью

предисловие

面试挺累人的,每天下班后赶回家饿着肚子面试,
面了将近一个月,大概就一个中厂的水平吧。
面试完最好进行一个复盘,查漏补缺。

1. Отключение

1.  对着简历问一遍
2.  rem, 计算出375的屏幕,1rem,单位出现小数怎么处理
3.  javascript精度问题的原因
4.  axios用途
5.  性能优化的点,webpack分包,首页资源大小,请求优化,gzip之前还是之后,React重新渲染
6.  国际化站点,cdn, 在页面什么阶段加载国际化文件,如果有20多个语言该怎么做
7.  ssr有没有用过
8.  项目中websocket是解决了什么问题
9.  DOM, BOM, js的关系
10. React dom绑定事件,与原生事件有什么区别
11. http2多路复用

кодовый вопрос

 if (!('a' in window)) {
   var a = 1;
 }
 console.log(a); 
    var a = {}; var b = {}; var c ={};
    console.log(a === b);
    console.log(b === c);
    console.log(a === c);

    var d = e = f = {};


    f = {}
    e = f
    d = e

    console.log(d === e);
    console.log(d === f);
    console.log(e === f);

Миха Тур:

1. http状态 301,302, 304,缓存相关字段
2. cookie、ws是否跨域
3. 触发bfc的方式
4. rem和vw的使用场景
5. 伪代码实现下懒加载

Иностранная компания:

один,

  1. Является ли следующая функция замыканием?
const func = ()=> {
   const a = '111'
   const fun2 = ()=> console.log(a)
   return ()=> console.log('_')
}

const next = func()



'12345'.split('')
上述代码发生了什么

下面代码打印的是
console.log("12345" instanceof Object);

  1. реализовать некоторые, все
  2. сгладить реализацию
const promise = new Promise(resolve => {
  console.log("11111");
  setTimeout(() => {
    console.log("22222");
  }, 0);
  resolve();
  console.log("resolve");
  throw new Error("error");
  console.log("error");
});
promise
  .then(
    () => {
      console.log("33333");
      setTimeout(() => {
        console.log("44444");
      }, 0);
    },
    () => {
      console.log("reject");
    }
  )
  .catch(() => {
    console.log("catch");
  });
console.log("55555");

  1. Как предотвратить повторный рендеринг функциональных компонентов

два,

  1. Функция AST или принцип реализации Babel
  2. Реализуйте пользовательские хуки, используйтеPrevious. После setcount(count => count + 1) вывести значение последнего счетчика

Мейтуан:

один,

  1. Я упомянул оптимизацию производительности в своем представлении и говорил об оптимизации производительности.
  2. Совместное использование файлов cookie между разными доменами
  3. на, излучать, реализовывать
  4. Реализация анти-встряски
  5. Введите URL-адрес страницы, чтобы вернуть результат
  6. Как реализован кеш
  7. Компонент React рендерится повторно
  8. подпакет веб-пакета

байт:

один,

  1. Плагин Webpack, жизненный цикл
  2. Как реализовать маршрутизацию по соглашению umi
  3. Babel реализует принцип расстояния
  4. React ref
  5. реализация fib, как оптимизировать

Хема:

один,

  1. Скажите, что вы делаете лучше всего, задавайте вопросы
  2. Основа для распаковки webpack. 1. Используется несколькими модулями и кешируется 2. Ресурс слишком велик
  3. Событие сегмента линии щелчка холста. Как работать с перекрывающимися областями
  4. Использование webWorker: почему бы не делать запросы в воркере и не делать конвертацию данных?

Таймэй Медикал:

  1. Разница между функцией генерации и асинхронностью
  2. реализация плагина webpack

Покупка продуктов Дин Донг:

один,

  1. Использование Vue, React
  2. Смонтированная последовательность вызова родительского и дочернего компонентов
  3. Принцип реализации $nextTick
  4. дочерние элементы центрированы по горизонтали и вертикали
  5. Как оптимизировать последовательность Фибоначчи
  6. Бизнес-вопрос: инкапсулируйте глобальное всплывающее окно, которое можно вызвать в любом компоненте. Добавлено: Как открыть 5 всплывающих окон одновременно и как насчет порядка закрытия

два,

  1. Инкапсуляция плагинов Vue
  2. 5 всплывающих окон
  3. Принцип $nextTick
  4. Сегментация мобильного номера _ _ _ - _ _ _ _ - _ _ _ _
  5. Максимальное количество строк, «ABCDabcda» - самая длинная не повторяющаяся строка
  6. Взаимодействие компонентов родственного компонента
  7. Как сделать модульность vuex
  8. Как разные домены используют файлы cookie

Суммировать:

За 3-5 лет фронтенд-разработки вы должны не просто оставаться на уровне использования API, но хотя бы обращать внимание на некоторые принципы используемой вами технологии. Это также исследовательский дух кандидатов на инспекцию крупных заводов, и, условно говоря, существует определенная степень различия. Личные советы лучше всего владеть одним направлением, например:

  • Фронтенд-инжиниринг, webpack, babel, Node и т. д.
  • Знание исходного кода фреймворка
  • визуализация, 3D ориентация
  • потоковая передача, аудио и видео

Конечно, если вы хотите попасть на большую фабрику, вам придется атаковать часть алгоритма. leetcode легкий и умеренно сложный.