предисловие
У меня есть два года опыта, и теперь я принял главное предложение. В прошлом месяце я провел собеседования со многими крупными фабриками, и результаты были неплохими, и в конце концов я выбрал Toutiao. Если у вас есть вопросы, вы можете добавить WeChat в конце статьи, давайте общаться вместе!
Эта статья представляет собой резюме вопросов интервью.Собеседования Дачана в основном трехсторонние + HR-лица.Поэтому я буду классифицировать вопросы интервью в соответствии с каждым этапом интервью и обобщать опыт собеседования. Добро пожаловать, чтобы собирать и следовать ~
текст
одна сторона
С одной стороны, он в основном основан на исследовательской основе, а также будут письменные экзаменационные вопросы. Интервьюеры, как правило, умеют общаться и обсуждают основные вопросы. Потому что интервьюер с этой стороны, скорее всего, будет вашим будущим старшим братом/сестрой. В основном он будет рассматриваться в следующих измерениях:
- Основы JS
- Основы CSS
- Сетевой уровень
- Общий стек технологий
Основы JS
- Цикл for и forEach, какая производительность будет лучше
- Разница между let, const и var [Задайте вопрос, проанализируйте, о каких ошибках сообщается]
- Каковы основные типы данных JS
- Что такое Symbol и каковы его сценарии использования
- Какие есть методы у прототипа массива, которые могут изменять массив, а какие нет?
- Как преобразовать массивоподобный объект, каков общий принцип
- Разница между картой и слабой картой
- Вы понимаете объем JS, когда формируется объем функции?
- Что такое замыкание, что оно делает и как оно работает
- В виде примера расскажите о цепочке прототипов JS
- как реализовать новый
- Расскажите о методе наследования JS.
- Что такое стрелочная функция и чем она отличается от обычной функции
- Смысл в этом [через просмотр темы, изложите результаты, объясните причины]
- Как итерировать объект, для.. таким образом, как вынуть собственные свойства объекта
- Object.assign это мелкая копия или глубокая копия
- Как реализовать глубокую копию
- Что такое Promise, как его реализовать, Promise.then, как Promise.race реализует
- Что такое защита от сотрясений, что такое дросселирование и как добиться защиты от сотрясений
- Опишите цикл событий, будет ли этот цикл продолжаться вечно, разницу между макро-задачами и микро-задачами [через письменные вопросы теста, изложите результаты и объясните причины]
- Если в цикле событий, будут ли постоянно выполняться микрозадачи push?
- Каковы этапы механизма событий браузера? Что делает третий параметр addEventListener?
- Как реализовать время ожидания запроса
Основы CSS
- Что такое блочная модель и как переключаться между разными блочными моделями
- Приоритет стилей, как получить соседние элементы стиля
- Что такое значения атрибута position и в чем между ними разница
- Список решений по адаптации мобильных терминалов
- Знаете ли вы макет flex, что такое главная ось, как управлять основной осью и второстепенной осью
- Преимущества и недостатки Flex, как с помощью flex layout зафиксировать обе стороны и адаптироваться к середине, можно ли добиться другими способами одновременно
- Как добиться горизонтального и вертикального центрирования
- Как очистить поплавок, принцип очистки поплавка
- Что такое BFC, что он делает и какое поведение вызывает BFC
- Родительский элемент является плавающим, может ли дочерний элемент сформировать BFC, чтобы очистить плавание?
- Как реализовать css анимацию
- Зачем использовать преобразование для записи анимации, а не оставить для записи анимации
- Разница между перекомпоновкой и перерисовкой, какое поведение вызовет перекомпоновку и какое поведение вызовет перерисовку
- Знаете ли вы CSS3, какие свойства появились в CSS3?
- Как решить проблему 1px [как можно больше]
- Разница между less и css, вы поняли функцию less?
Сетевой уровень
- Каков общий процесс ввода URL-адреса в браузере?
- Описать процесс рендеринга страницы браузера
- Что вызывает белый экран браузера
- Разница между файлами cookie для хранения в браузере, localstorage и sessionStorage
- Как устанавливается cookie и какие значения может изменить JS?
- Описать кеширование браузера
- Что такое коды состояния HTTP
- Что содержит заголовок HTTP-запроса?
- Какие есть способы решения междоменных
- Описать принцип JSONP
- Описать процесс CORS
Общий стек технологий
- Некоторые различия между vue и react
- Каков жизненный цикл vue
- Вы поняли асинхронные компоненты vue?
- Как реализована двусторонняя привязка данных vue, как это делает отзывчивость массива и преимущества прокси
- Каковы инструкции vue, в чем разница между v-if и v-show
- Разница между вычисляемыми свойствами и прослушиваемыми свойствами
- В чем разница между виртуальным DOM vue и реакцией
- Опишите алгоритм разных Vue
- Какова функция клавиши после v-for
- Что такое компонентная коммуникация Vue
- Как реализована поддержка активности
- Как реализовать хеш-маршрут
- Каковы два способа vueRouter и в чем разница?
- Вы понимаете защиту маршрутизации vueRouter?
- Знаете ли вы новые функции vue3.0?
- Каков механизм setState React
- Описать жизненный цикл React
- Описать промежуточный принцип редукции
- Как redux выполняет асинхронную обработку
- Разница между редуксом и два
- В чем разница между загрузчиком webpack и плагинами и как webpack использует плагины
- Описать принцип однослойного рендеринга апплета
- Разница между bindtap и catchtap апплета
- Что такое связь апплета
- Насколько велики данные setData апплета и как их решить
- Как реализовать управление данными и мониторинг поведения пользователей
вопросы по программированию
- Реализуйте метод суммы [sum(1, 2, 3)(4), вызовы аналогичны sum(1, 2)(3, 4)] и console.log(sum(1, 2, 3)(4) = > // вывод 10
- Дан массив, который сначала увеличивается, а затем убывает, найти в нем максимальное значение
- Способ реализации дедупликации массива [напишите как можно больше]
- Реализовать регулярное выражение (соответствовать URL-ссылкам)
- Как реализовать трапецию с помощью CSS, а затем кликабельный круг
- Всего человек задувает 253 свечи, сколько ему лет [год, две свечи, когда два года и так далее]
- Как реализовать слияние двух отсортированных массивов, временная сложность O(n)
две стороны
С другой стороны, обычно исследуются некоторые проблемы проекта, оптимизация производительности и всесторонняя проверка основных принципов. Второй интервьюер часто является его собственным руководителем в будущем или более старшим специалистом по технологиям в других отделах. Размеры инспекции относительно изменчивы, и для этой части проекта требуется дополнительная подготовка.
основная часть
- Что такое коды состояния HTTP
- Разница между HTTP1.1/HTTP2.0
- Описать кеширование браузера
- Разница между куки и сессиями
- Опишите xss и csrf, как предотвратить
- Принцип тайм-аута запроса
- Описывать процессы и потоки
- Причины утечек памяти узлов
- Понять принцип миграции vue в апплет
- Принцип реализации виртуального списка
- Схема реализации скелетной диаграммы
- Преимущества хуков React
- Как реализовано синхронное управление состоянием и асинхронное управление состоянием Dva
- Описать принцип nextTick vue
- Распространенные плагины для webpack и разница между dev и product
- принцип упаковки webpack
- Как обрабатывать связь между страницами апплета
- Разница между компонентами веб-просмотра и нативными компонентами
оптимизация производительности
- Оптимизация производительности мобильного терминала [с точки зрения того, что я сделал]
- Как оптимизировать производительность веб-пакета
- Как оптимизировать загрузку выше сгиба
- Как вы обычно оптимизируете производительность части апплета?
вопросы по программированию
- Напишите 3 схемы горизонтального и вертикального центрирования
- Рукописная реализация метода привязки
- Реализация функции сна рукописного обещания
- Реализация рукописного Promise.all
- Задача алгоритма — найти самую длинную уникальную подстроку
- Алгоритм Вопрос - Рассчитать возраст [Введите строку: гггг-мм-дд, рассчитайте возраст по текущему времени]
Во время второго собеседования возникнут вопросы по проекту, которые я не буду здесь перечислять. Поскольку проекты у всех разные, ссылка не имеет смысла. Трудности и основные моменты в проекте можно описать подробнее.
Три стороны
В трех аспектах обычно рассматриваются проекты, личное планирование и способность предоставлять технические решения. Трехстороннее расследование является более открытым, и каждый может ответить в соответствии со своей ситуацией. В то же время будут и письменные экзаменационные вопросы.
- Расскажите о проекте, проблемах, возникших в проекте, и способах их решения
- Оглядываясь назад, можно ли что-то улучшить в проекте?
- Как оптимизировать производительность
- Какой технический вклад вы внесли в компанию?
- Каков ваш самый большой рост в вашей первоначальной компании?
- Как вы думаете, что можно улучшить в процессе разработки оригинальной компании?
- Комментарии к коду, деструктуризация массива, общие идеи, как инкапсулировать функции, как использовать шаблоны проектирования, как отлаживать свой код
- Надеюсь, что компания может предоставить вам то, что
- Каковы ваши будущие карьерные планы?
- Как ты обычно учишься
- Что вы сейчас изучаете [ответьте внимательно, это продолжение интервью]
- В чем причина ухода
вопросы по программированию
- Вопросы по алгоритму — реализация бинарного поиска
- Реализовать асинхронный запрос кэша [проверить параллелизм]
- Вопрос алгоритма - {}[]() три решения закрыты
часовая поверхность
С HR вообще проще. Это в основном вращается вокруг вашей основной информации, зарплаты, личного развития, личности, общения с другими, совместной работы и т. д. Сам вопрос относительно открытый, и каждый ответ на него разный. Вы можете ответить в соответствии с вашей личной ситуацией.
- Почему вы ушли и какое впечатление произвела на вас последняя компания
- Каковы ваши сильные и слабые стороны [обычно позволяют вам объяснить на конкретных случаях]
- Какой ты человек в глазах окружающих
- Каковы ваши планы на будущее
- Какова ваша ожидаемая зарплата