⚡️Обобщение опыта фронтенда с полутора годами опыта ⚡️

интервью
⚡️Обобщение опыта фронтенда с полутора годами опыта ⚡️

перед интервью

Во-первых, на вопрос нет однозначного ответа.Большинство из них задают только вопросы, ответ будет добавлен позже! В то время ответы были не очень полными. Процесс собеседования был относительно долгим, и интервью начались с перерывами в начале года, я не занимался слишком детальным планированием и не помнил, как отвечать на некоторые ответы в то время.

В начале года было проведено интервью со многими компаниями, такими как Meituan, Toutiao, Ali, Kuaishou, Didi, Shopee и т. д., а также с несколькими неизвестными небольшими компаниями. Исходя из опыта различных предшественников, сначала нужно взять небольшую компанию, чтобы проанализировать прошлое и узнать новое, а также обобщить свои знания с помощью небольших интервью одно за другим. Но на самом деле ситуация, с которой я столкнулся, заключается в том, что небольшие компании не задают слишком глубоких рамочных принципов и основ (могут быть компании, которые обращают внимание, но я с ними не сталкивался),В основном будет сосредоточено на опыте проекта, который вы сделали, так что никаких новых технических улучшений в этих собеседованиях нет (ведь каждое собеседование учит, с точки зрения навыков собеседования, по крайней мере потом можно рассказывать о проделанных вами проектах более увлекательно...).

Что касается интервью в Дачанге, то могу только сказать, что оно довольно сложное. Когда я впервые общался с Куайшоу, я нервничал из-за первых нескольких вопросов, и ответы были не по делу. Интервьюер был в кепке и в основном не Он смотрел на меня. Время от времени смотрел на меня, и с самого начала он, казалось, не интересовался мной, и получил очень сильный удар. В то время я очень любил Куайшоу, поэтому я взял выходной, чтобы готовьтесь к интервью, но я не ожидала, что оно закончится плохо😭.

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

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

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

лицевая часть

Только для справки, только для справки, только для справки! ! !

Поскольку у меня почти нет опыта работы с React, самый распространенный вопрос о React, который я получаю, заключается в том, как вы думаете, в чем разница между ним и vue?

Ах... раздел резюме действительно важен в этом отношении.Вообще-то да, но я не профессионал, в резюме этого не написано, так что не буду, не спрашивайте...

Следующая часть интервью была разделена мной на восемь аспектов: (Значок 🌟 в следующей теме представляет собой частоту интервью, которые появлялись много раз)

  • Основы JavaScript
  • CSS и оптимизация
  • Vue или React, связанные с фреймворком
  • Фронтальная упаковка и другая инженерия
  • Браузеры и распространенные проблемы безопасности
  • кроссплатформенная технология
  • Связанные с сетью
  • несколько алгоритмов

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

и потому что этоиз твоего резюмечтобы задавать вопросы, поэтому некоторые из распространенных nodejs, serverless, GraphQL и т. д. не входят в мои вопросы на собеседовании, но очень вероятнопоявится в вашей теме, сопутствующие темы можно дополнять самостоятельно!

Собственный JS-код

  1. JavaScript реализует сжатие загружаемых изображений?

Ответ: Прочитайте объект File, загруженный пользователем, прочитайте и запишите на холст (canvas), используйте Canvas API для сжатия, а затем преобразуйте его в объект File (Blob) после завершения сжатия и загрузите его в удаленный сервер изображений; но иногда нам также необходимо сжать строку base64, а затем преобразовать ее в строку base64 и передать ее в удаленную базу данных или преобразовать в объект File (Blob).

Идея заключается в том, чтобы нарисовать изображение File + Canvas

Вы можете посмотреть статью Чжан СиньсюйФайловый API HTML5 плюс холст для сжатия и загрузки изображений на JS.

  1. Говорите об асинхронности в JavaScript? 🌟

Ответ: setTimeout, MutationObserver, postMessage, Promise, async, await, генератор

Из MutationObserver postMessage будет включать в себя $nextTick vue

От генератора до реализации co.js код не длинный и его смысл легко понять, но я действительно еще не написал его, предлагаю вам, ребята, прочитать его внимательно!

Из Promise и setTimeout будет говорить следующее, чтобы сказатьцикл событий

  1. Цикл событий браузера и nodejs? 🌟

Ответ: стек выполнения, обещание — это микрозадача, setTimeout — задача.

Для многих из этих этапов вы можете увидеть полное введение модели здесь:HTML.spec.what WG.org/multi Page/I…

Что нужно сказать: во-первых, setTimeout не является чем-то особенным, это тоже задача. Кроме того, после выполнения каждой задачи и большого количества микрозадач (не обязательно все выполняются в одном цикле) будет выполняться фаза renderUi.Хотя выполняется не каждый цикл событий renderUi, а каждый интервал, что является легендарным60hzрамка16ms.

Цикл событий nodejs немного отличается... больше process.nextTick и т. д.

  1. Рукописный Promise или статический метод Promise

Ответ: При написании промиса вручную попробуйте записать состояние промиса, статические методы и.then,.catch. Конечно, более детальную реставрацию можно увидетьPromise A+Спецификация.

статический методPromise.allSettled Promise.all Promise.raceи Т. Д.

  1. Дросселирование рукописного ввода и защита от дрожания 🌟

Ответ: Это обычное дело, принцип очень прост, в основном зависит от того, можно ли инкапсулировать функцию, продвинута ли инкапсуляция или нет, и является ли ситуация всеобъемлющей.

  1. функция рукописного связывания

Ответ: То же, что и выше.

  1. использование сервисного работника

Ответ: кеширование, прогрессивное приложение, обработка перехвата

говорить сworkerтакже может говорить овеб-работник, общий WorderПодождите, если у вас есть уверенность в себе или в вашей работе есть глубокое понимание этого аспекта, вы можете показать это. Покажи свои сильные стороны...

  1. строгий режим

Ответ: Это undefined, with запрещено, аргументы нельзя изменять, выбрасывается исключение при присвоении объекта read-only, сначала нужно объявить переменную, первый параметр вызова, apply не будет преобразован. ..

Просто ответьте на некоторые.

  1. Цепочка прототипов и наследование

A: Это очень часто спрашивают, но любое объяснение можно найти с большим количеством лайков, и вы можете понять его, прочитав его один раз, просто запомните общие контрольные точки.

  1. Правила сопоставления регулярных выражений?

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

css и оптимизация

  1. гибкий макет 🌟

Ответ: Гибкая статья Учителя Жуань Ифэн ясна и понятна.

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

  1. Оптимизировать эффект прокрутки длинного списка

Я не ответил на него, я сказал, что несколько решений js не отвечают на правильный вопрос.

Интервьюер ответил: переход оптимизирует анимационные эффекты, послойный рендеринг

Проанализировав его позже, вы можете использовать преобразование для принудительного наложения слоев, а второе может использовать видимость содержимого, чтобы не отображать невидимые элементы, и установить значение равнымautoВот и все. В-третьих, для некоторых анимационных эффектов вы можете использоватьwill-changeВоздействует на родительский элемент для ускорения GPU и удаляет его после использования.

  1. Адаптивный макет 🌟

Ответ: Это может включать функции css, различие rem/em, медиа-запросы...

  1. Что такое БФК?

Ответ: Контекст форматирования на уровне блока, я всегда использую его для макета!

В: Что образует BFC? Что оно делает?

отвечать:

  • корневой элемент тела
  • Элемент float: значение float, отличное от none
  • Абсолютно позиционированные элементы: позиция (абсолютная, фиксированная)
  • отображение inline-block, table-cells, flex
  • значение переполнения, отличное от видимого (скрытое, автоматическое, прокрутка)

Функция есть, для макета 😂 (не отвечайте так, подробности можно посмотреть в следующей статье)

Рекомендовать статью BFC

Vue или React, связанные с фреймворком

  1. Принцип отзывчивости Vue и код реализации двусторонней привязки?

  2. Принцип отзывчивости Vue3, в чем разница?

  3. Идея алгоритма сравнения Vue, как сравнивать узлы?

  4. Реализация компиляции Vue? 🌟

  5. Как vue настраивает инструкции? Конкретная запись API?

  6. Оптимизация производительности Vue3 для vue2 (как во время компиляции, так и во время выполнения)?

  7. Чем отличается реакция? Знаешь о крючках?

Ответ: (Хотя не буду, могу сказать другое, типа у vue3 тоже есть хуки, его использование и какие-то преимущества?)

  1. Вы использовали TypeScript? Каковы преимущества и зачем использовать? В определенных сценариях используйте TypeScript для определения типа.

Ответ:Проектов Vue много, а ts используется меньше и тоже использовался.При написании sdk фронтенд-мониторинга интерфейс проверяется на тип.Он как документ. (Есть много преимуществ строгой типизации, но лично мне писать очень хлопотно. Конечно, некоторым людям это очень нравится.)

  1. Сценарии и принципы использования Vue для поддержания активности? 🌟

Фронтальная упаковка и другая инженерия

  1. использование веб-пакета и накопительного пакета?

  2. Принцип встряхивания деревьев? 🌟

  3. Как написать загрузчик и плагин webpack?

  4. Вы знакомы с vite, чем он отличается от webpack?

  5. Вклад в вите и использование в реальных проектах?

  1. Как равномерно фиксировать ошибки? Как отловить асинхронные ошибки в vue?

Кстати, попросите гита немного 🌟🌟

Браузеры и распространенные проблемы безопасности

  1. Процесс загрузки страницы в браузере, чем подробнее, тем лучше 🌟

  2. Кэш браузера 🌟

  3. Междоменные проблемы и их обработка 🌟

  4. v8 быстрый массив, медленный массив, скрытый класс или другие модули?

  5. Что означают xss и csrc? Как предотвратить? 🌟

Ответ: Две статьи Meituan публикуются, и интервьюер напрямую задает следующий вопрос!

кроссплатформенная технология

  1. Используя электрон, как реализовать функцию маленького лотка?

  2. В чем разница между виджетом флаттера stateFullWidget и stateLessWidget?

  3. Принцип js Bridge? 🌟

  4. Движок рендеринга Flutter?

Связанные с сетью

  1. связанные с DNS, что такое DNS-сервер и как запрашивать DNS? 🌟

  2. Единый вход Oauth2.0 и jwt и т. д.

  3. http/https разница? Почему https безопаснее? Почему https не очень безопасен?

  4. Разница между http1.x и http2.0? Преимущества http2.0, а в некоторых случаях медленнее, чем 1.x?

  5. Принцип шифрования HTTPS?

  6. заголовок сжатия http2.0 и принцип параллельного запроса?

  7. способ подключения по tcp?

несколько алгоритмов

  • Палиндром, Центр Диффузии

  • Бульканье, быстрый ряд 🌟

  • Бинарный поиск 🌟

  • бинарное дерево 🌟

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

вопросы по проекту на собеседовании

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

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

Потому что в моем резюме почти ничего нет о серверной части nodejs, но интервьюер всегда хочет спросить...

Я могу только сказать, что я сделал серверную часть своего собственного блога...

Git-адрес кода сервера

Но он очень рудиментарный... Могу только сказать, что он разработан 😂

Суммировать

  • Я могу дать лишь приблизительное представление о принципе фреймворка, если очень сильно углубиться в какую-то часть конкретного кода и метода реализации, то можно написать только фреймворк, а многих деталей можно и не заметить.
  • Алгоритмы все еще очень слабы, но, к счастью, интервьюеры очень любезны и хорошо разбираются в красоте людей, хахаха... (Лучше чистить больше, иначе это повлияет на вашу зарплату и успех 😯)
  • Прежде чем отправлять резюме, лучше всего найти людей внутри компании по различным каналам, чтобы заранее понять бизнес, что также может помочь вам принять решение об отличных предложениях позже.
  • Имейте смелость сказать «нет». год или N лет. Тщательно выбирайте для счастливой жизни. ! ! !

Первая смена работы была очень непростой, было такое же ощущение, что я начала искать работу, не получив диплома, мне действительно нужно было поверить в себя и действовать планомерно.Если я могу чем-то помочь, пожалуйста, не стесняйтесь обращаться ко мне, например, пересмотр резюме, внутреннее направление, по крайней мере, вы можете рассказать о своих проблемах., у людей будут проблемы~

Желаю всем светлого будущего и удовлетворительного предложения.

Я надеюсь, что моя статья может быть вам полезна. Если у вас есть какие-либо вопросы, не стесняйтесь комментировать. Критика приветствуется, и вы ответите, когда увидите ее~


Последний последний! Втянуть!

Компания

15 дней ежегодного отпуска, 14 дней отпуска по болезни, бесплатные закуски, напитки и фрукты, апельсиновый день каждый месяц, обильный послеобеденный чай, мероприятия, игры, никаких сверхурочных! ! !

Добро пожаловатьнажмите на ссылку изображенияОтсканируйте код для доставки~