перед интервью
Во-первых, на вопрос нет однозначного ответа.Большинство из них задают только вопросы, ответ будет добавлен позже! В то время ответы были не очень полными. Процесс собеседования был относительно долгим, и интервью начались с перерывами в начале года, я не занимался слишком детальным планированием и не помнил, как отвечать на некоторые ответы в то время.
В начале года было проведено интервью со многими компаниями, такими как Meituan, Toutiao, Ali, Kuaishou, Didi, Shopee и т. д., а также с несколькими неизвестными небольшими компаниями. Исходя из опыта различных предшественников, сначала нужно взять небольшую компанию, чтобы проанализировать прошлое и узнать новое, а также обобщить свои знания с помощью небольших интервью одно за другим. Но на самом деле ситуация, с которой я столкнулся, заключается в том, что небольшие компании не задают слишком глубоких рамочных принципов и основ (могут быть компании, которые обращают внимание, но я с ними не сталкивался),В основном будет сосредоточено на опыте проекта, который вы сделали, так что никаких новых технических улучшений в этих собеседованиях нет (ведь каждое собеседование учит, с точки зрения навыков собеседования, по крайней мере потом можно рассказывать о проделанных вами проектах более увлекательно...).
Что касается интервью в Дачанге, то могу только сказать, что оно довольно сложное. Когда я впервые общался с Куайшоу, я нервничал из-за первых нескольких вопросов, и ответы были не по делу. Интервьюер был в кепке и в основном не Он смотрел на меня. Время от времени смотрел на меня, и с самого начала он, казалось, не интересовался мной, и получил очень сильный удар. В то время я очень любил Куайшоу, поэтому я взял выходной, чтобы готовьтесь к интервью, но я не ожидала, что оно закончится плохо😭.
На других собеседованиях интервьюеры были очень милые, хотя кто-то прошел, а кто-то нет, по крайней мере, опыт был неплохой, и я многому научился. Поскольку вопросы на собеседовании относительно схожи, вы будете задавать вопросы о своем резюме. По сути, вы расскажете о проекте примерно за 20 минут, обсудите технические принципы и основы за 20 минут и напишете несколько вопросов в конце. по крайней мере, я лично не думаю, что это особенно сложный вопрос.
В то же время, поскольку вопросы интервью похожи, нет особого различия между тем, от какой компании вопросы, и я надеюсь, что студенты смогут составить собственное мнение...
Ниже приведены вопросы для собеседования, которые я изо всех сил старался вспомнить, а также вопросы, которые, скорее всего, будут заданы, даже если я не сдавал экзамен. Надеюсь, это поможет студентам, которые недавно захотели сменить работу!
лицевая часть
Только для справки, только для справки, только для справки! ! !
Поскольку у меня почти нет опыта работы с React, самый распространенный вопрос о React, который я получаю, заключается в том, как вы думаете, в чем разница между ним и vue?
Ах... раздел резюме действительно важен в этом отношении.Вообще-то да, но я не профессионал, в резюме этого не написано, так что не буду, не спрашивайте...
Следующая часть интервью была разделена мной на восемь аспектов: (Значок 🌟 в следующей теме представляет собой частоту интервью, которые появлялись много раз)
- Основы JavaScript
- CSS и оптимизация
- Vue или React, связанные с фреймворком
- Фронтальная упаковка и другая инженерия
- Браузеры и распространенные проблемы безопасности
- кроссплатформенная технология
- Связанные с сетью
- несколько алгоритмов
Там нет ничего связанного с Html, с одной стороны действительно мало смежных тем, с другой стороны не слишком сложные задачи, типичные ситуации в нормальной разработке в принципе решаемы.
и потому что этоиз твоего резюмечтобы задавать вопросы, поэтому некоторые из распространенных nodejs, serverless, GraphQL и т. д. не входят в мои вопросы на собеседовании, но очень вероятнопоявится в вашей теме, сопутствующие темы можно дополнять самостоятельно!
Собственный JS-код
- JavaScript реализует сжатие загружаемых изображений?
Ответ: Прочитайте объект File, загруженный пользователем, прочитайте и запишите на холст (canvas), используйте Canvas API для сжатия, а затем преобразуйте его в объект File (Blob) после завершения сжатия и загрузите его в удаленный сервер изображений; но иногда нам также необходимо сжать строку base64, а затем преобразовать ее в строку base64 и передать ее в удаленную базу данных или преобразовать в объект File (Blob).
Идея заключается в том, чтобы нарисовать изображение File + Canvas
Вы можете посмотреть статью Чжан СиньсюйФайловый API HTML5 плюс холст для сжатия и загрузки изображений на JS.
- Говорите об асинхронности в JavaScript? 🌟
Ответ: setTimeout, MutationObserver, postMessage, Promise, async, await, генератор
Из MutationObserver postMessage будет включать в себя $nextTick vue
От генератора до реализации co.js код не длинный и его смысл легко понять, но я действительно еще не написал его, предлагаю вам, ребята, прочитать его внимательно!
Из Promise и setTimeout будет говорить следующее, чтобы сказатьцикл событий
- Цикл событий браузера и nodejs? 🌟
Ответ: стек выполнения, обещание — это микрозадача, setTimeout — задача.
Для многих из этих этапов вы можете увидеть полное введение модели здесь:HTML.spec.what WG.org/multi Page/I…
Что нужно сказать: во-первых, setTimeout не является чем-то особенным, это тоже задача. Кроме того, после выполнения каждой задачи и большого количества микрозадач (не обязательно все выполняются в одном цикле) будет выполняться фаза renderUi.Хотя выполняется не каждый цикл событий renderUi, а каждый интервал, что является легендарным60hzрамка16ms.
Цикл событий nodejs немного отличается... больше process.nextTick и т. д.
- Рукописный Promise или статический метод Promise
Ответ: При написании промиса вручную попробуйте записать состояние промиса, статические методы и.then,.catch. Конечно, более детальную реставрацию можно увидетьPromise A+Спецификация.
статический методPromise.allSettled
Promise.all
Promise.race
и Т. Д.
- Дросселирование рукописного ввода и защита от дрожания 🌟
Ответ: Это обычное дело, принцип очень прост, в основном зависит от того, можно ли инкапсулировать функцию, продвинута ли инкапсуляция или нет, и является ли ситуация всеобъемлющей.
- функция рукописного связывания
Ответ: То же, что и выше.
- использование сервисного работника
Ответ: кеширование, прогрессивное приложение, обработка перехвата
говорить сworkerтакже может говорить овеб-работник, общий WorderПодождите, если у вас есть уверенность в себе или в вашей работе есть глубокое понимание этого аспекта, вы можете показать это. Покажи свои сильные стороны...
- строгий режим
Ответ: Это undefined, with запрещено, аргументы нельзя изменять, выбрасывается исключение при присвоении объекта read-only, сначала нужно объявить переменную, первый параметр вызова, apply не будет преобразован. ..
Просто ответьте на некоторые.
- Цепочка прототипов и наследование
A: Это очень часто спрашивают, но любое объяснение можно найти с большим количеством лайков, и вы можете понять его, прочитав его один раз, просто запомните общие контрольные точки.
- Правила сопоставления регулярных выражений?
Ответ: Сделать это на самом деле никак нельзя. Единственный способ - систематически изучать правила регулярных выражений. Конечно, часто проверенное может бытьэлектронная почта, адрессовпадение.
css и оптимизация
- гибкий макет 🌟
Ответ: Гибкая статья Учителя Жуань Ифэн ясна и понятна.
Обычные API и двухколоночные, трехколоночные макеты и т. д. немного сложны для меня. В прошлом проект отличался высокой совместимостью, а гибкая верстка использовалась редко. Рекомендуется использовать его, если вы им не пользовались, и раскладка будет общей через несколько часов.
- Оптимизировать эффект прокрутки длинного списка
Я не ответил на него, я сказал, что несколько решений js не отвечают на правильный вопрос.
Интервьюер ответил: переход оптимизирует анимационные эффекты, послойный рендеринг
Проанализировав его позже, вы можете использовать преобразование для принудительного наложения слоев, а второе может использовать видимость содержимого, чтобы не отображать невидимые элементы, и установить значение равнымauto
Вот и все. В-третьих, для некоторых анимационных эффектов вы можете использоватьwill-change
Воздействует на родительский элемент для ускорения GPU и удаляет его после использования.
- Адаптивный макет 🌟
Ответ: Это может включать функции css, различие rem/em, медиа-запросы...
- Что такое БФК?
Ответ: Контекст форматирования на уровне блока, я всегда использую его для макета!
В: Что образует BFC? Что оно делает?
отвечать:
- корневой элемент тела
- Элемент float: значение float, отличное от none
- Абсолютно позиционированные элементы: позиция (абсолютная, фиксированная)
- отображение inline-block, table-cells, flex
- значение переполнения, отличное от видимого (скрытое, автоматическое, прокрутка)
Функция есть, для макета 😂 (не отвечайте так, подробности можно посмотреть в следующей статье)
Vue или React, связанные с фреймворком
-
Принцип отзывчивости Vue и код реализации двусторонней привязки?
-
Принцип отзывчивости Vue3, в чем разница?
-
Идея алгоритма сравнения Vue, как сравнивать узлы?
-
Реализация компиляции Vue? 🌟
-
Как vue настраивает инструкции? Конкретная запись API?
-
Оптимизация производительности Vue3 для vue2 (как во время компиляции, так и во время выполнения)?
-
Чем отличается реакция? Знаешь о крючках?
Ответ: (Хотя не буду, могу сказать другое, типа у vue3 тоже есть хуки, его использование и какие-то преимущества?)
- Вы использовали TypeScript? Каковы преимущества и зачем использовать? В определенных сценариях используйте TypeScript для определения типа.
Ответ:Проектов Vue много, а ts используется меньше и тоже использовался.При написании sdk фронтенд-мониторинга интерфейс проверяется на тип.Он как документ. (Есть много преимуществ строгой типизации, но лично мне писать очень хлопотно. Конечно, некоторым людям это очень нравится.)
- Сценарии и принципы использования Vue для поддержания активности? 🌟
Фронтальная упаковка и другая инженерия
-
использование веб-пакета и накопительного пакета?
-
Принцип встряхивания деревьев? 🌟
-
Как написать загрузчик и плагин webpack?
-
Вы знакомы с vite, чем он отличается от webpack?
-
Вклад в вите и использование в реальных проектах?
-
История объединенного кода
- Как равномерно фиксировать ошибки? Как отловить асинхронные ошибки в vue?
Кстати, попросите гита немного 🌟🌟
Браузеры и распространенные проблемы безопасности
-
Процесс загрузки страницы в браузере, чем подробнее, тем лучше 🌟
-
Кэш браузера 🌟
-
Междоменные проблемы и их обработка 🌟
-
v8 быстрый массив, медленный массив, скрытый класс или другие модули?
-
Что означают xss и csrc? Как предотвратить? 🌟
Ответ: Две статьи Meituan публикуются, и интервьюер напрямую задает следующий вопрос!
кроссплатформенная технология
-
Используя электрон, как реализовать функцию маленького лотка?
-
В чем разница между виджетом флаттера stateFullWidget и stateLessWidget?
-
Принцип js Bridge? 🌟
-
Движок рендеринга Flutter?
Связанные с сетью
-
связанные с DNS, что такое DNS-сервер и как запрашивать DNS? 🌟
-
Единый вход Oauth2.0 и jwt и т. д.
-
http/https разница? Почему https безопаснее? Почему https не очень безопасен?
-
Разница между http1.x и http2.0? Преимущества http2.0, а в некоторых случаях медленнее, чем 1.x?
-
Принцип шифрования HTTPS?
-
заголовок сжатия http2.0 и принцип параллельного запроса?
-
способ подключения по tcp?
несколько алгоритмов
-
Палиндром, Центр Диффузии
-
Бульканье, быстрый ряд 🌟
-
Бинарный поиск 🌟
-
бинарное дерево 🌟
-
Динамическое программирование (с этим тестом не сталкивался, может слишком сложный, интервьюер видел, что я долго выигрывал, это не считается, начальник может обратить внимание)
вопросы по проекту на собеседовании
Вероятно, это позволит вам спроектировать технический выбор системы или спроектировать библиотеку компонентов и спроектировать систему. Лично я предполагаю, что для подонка меня такого рода вопрос, чтобы увидеть, есть ли у меня осведомленность владельца, а также посмотреть, какие технологии меня больше интересуют?
В дополнение к системе существуют также дизайнерские решения для определенных сценариев, например, как использовать аутентификацию для управления дизайном времени входа в систему.Оставайтесь на связи в течение семи дней.
Потому что в моем резюме почти ничего нет о серверной части nodejs, но интервьюер всегда хочет спросить...
Я могу только сказать, что я сделал серверную часть своего собственного блога...
Но он очень рудиментарный... Могу только сказать, что он разработан 😂
Суммировать
- Я могу дать лишь приблизительное представление о принципе фреймворка, если очень сильно углубиться в какую-то часть конкретного кода и метода реализации, то можно написать только фреймворк, а многих деталей можно и не заметить.
- Алгоритмы все еще очень слабы, но, к счастью, интервьюеры очень любезны и хорошо разбираются в красоте людей, хахаха... (Лучше чистить больше, иначе это повлияет на вашу зарплату и успех 😯)
- Прежде чем отправлять резюме, лучше всего найти людей внутри компании по различным каналам, чтобы заранее понять бизнес, что также может помочь вам принять решение об отличных предложениях позже.
- Имейте смелость сказать «нет». год или N лет. Тщательно выбирайте для счастливой жизни. ! ! !
Первая смена работы была очень непростой, было такое же ощущение, что я начала искать работу, не получив диплома, мне действительно нужно было поверить в себя и действовать планомерно.Если я могу чем-то помочь, пожалуйста, не стесняйтесь обращаться ко мне, например, пересмотр резюме, внутреннее направление, по крайней мере, вы можете рассказать о своих проблемах., у людей будут проблемы~
Желаю всем светлого будущего и удовлетворительного предложения.
Я надеюсь, что моя статья может быть вам полезна. Если у вас есть какие-либо вопросы, не стесняйтесь комментировать. Критика приветствуется, и вы ответите, когда увидите ее~
Последний последний! Втянуть!
Компания
15 дней ежегодного отпуска, 14 дней отпуска по болезни, бесплатные закуски, напитки и фрукты, апельсиновый день каждый месяц, обильный послеобеденный чай, мероприятия, игры, никаких сверхурочных! ! !
Добро пожаловатьнажмите на ссылку изображенияОтсканируйте код для доставки~