Фронтендер, закончивший учебу в 16 лет, ищет работу в Ханчжоу.

интервью внешний интерфейс JavaScript React.js
Фронтендер, закончивший учебу в 16 лет, ищет работу в Ханчжоу.

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

задний план

потому что я прочитал статьюИнтервью и обмен информацией: предварительное исследование внешнего набора Alibaba в социальных сетях с годовым опытомТак что приезжайте в Ханчжоу с целью, NetEase! Для меня было бы большой честью присоединиться к Али. Поэтому интервью всегда ленивое, и интервью про одну семью примерно через день.

Тогда мой технологический стек, вероятно, будет реагировать + узел, адрес GitHub:Nealyang

Текущее состояние таково, что Али прошел техническое и поперечное сечение, вероятно, лицо директора + лицо hr в следующий понедельник. Интервью с Netease hr завершено, ждем уведомления, iFLYTEK уже получил предложение, которое все еще является довольно хорошим предложением.Другие стартапы и зарегистрированные на бирже компании в основном получили предложение, будь то искусственный интеллект или умный дом, но. . . Ну и еще есть заветное желание большой завод. Может быть, его похоронил университет.

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

интервью начинается

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

Раздел HTML и CSS

  • css общий макет

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

  • BFC

Этого Didi спросили во время интервью (DiDi сделал исключение, позволив мне присоединиться к процессу, и стек технологий, который они также наняли, был vue). Обычно, когда их просили очистить флот, они что-то говорили.

  • проблема центрирования

Это должно быть обыденностью, об этом во время телефонного интервью спросили две компании.

  • Разница между сеансом, файлом cookie, sessionStorage, localStorage и т. д.

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

  • Разница между px/em/rem

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

  • Связанные свойства анимации и перехода

Я также использовал грубое, сокращенное расположение и атрибуты, которые я, вероятно, знал. Конечно, Али также спросил, почему C3 рекомендуется для анимации вместо js. На этот вопрос в то время не было хорошего ответа, вероятно, из-за производительности. , но что занимает главное нить и браузерное ускорение с3 не обсуждается. Затем Netease также спросил в интервью, и тогда я, Барабара, сказал соответствующие вещи, которые я проверил позже. Затем NetEase спросил, как браузер оптимизирует анимацию. . . Я. . . понятия не имею.

  • Заметки о написании css

Так как это не было явно оговорено в предыдущей команде, я не резюмировал, а примерно рассказал о методе в собственной кодировке и процессе проверки браузера.

  • Про css и HTML задают не так много вопросов, а есть другие теги, мета и медиа, которые, вероятно, вводятся.Они не очень глубокие, и я не очень подробно ответил. . . Потому что мой HTML CSS действительно средний.

Раздел JavaScript

  • Какие типы данных существуют в JavaScript?

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

  • Закрытие JavaScript

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

  • Внешний междоменный интерфейс

В принципе, я это знаю, я уже резюмировал это на Nuggets, и многие компании задавали этот вопрос, включая Alibaba и NetEase. Я знаю общий способ, конкретное расширение сделает поля информации о междоменных доменах и заголовках CORS снова упомянутыми. не сложно

  • Наследование JavaScript

Я также резюмировал связанные статьи ранее.Второй интервьюер со стороны NetEase спросил.Я, вероятно, говорил о преимуществах, недостатках и методах реализации прототипного наследования, наследования конструктора, наследования композиции, паразитарного наследования композиции и es6.Метод реализации. Обычно это ответ. Позже NetEase спросили, как es5 реализует ключевое слово super. Видел преобразованный код Babel, но это. . Я действительно забыл прочитать это. Я, наверное, говорил о своей собственной идее реализации, которая заключается в том, чтобы украсить узор. А потом преодолел это.

  • Дроссель и отказ в JavaScript

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

  • События JavaScript

Механизм выполнения js-события задал Али кроссфейс. Наверное, я говорил о цикле событий, микрозадаче, очереди задач. Затем в общих чертах обсуждались этапы делегирования события, захвата, баблинга и таргета, а также, кстати, таргет и currentTarget.

  • метод запроса ajax

Поскольку это следует рассматривать как проверку базовых навыков, я рассказал о процессе XMLHTTPRequest, нескольких типах readyState и их значениях. И решение для совместимости браузера.

  • js для определения метода типа данных

Кажется, две компании спросили, и они примерно рассказали о методах оценки, мерах предосторожности, преимуществах и недостатках typeof, instanceof, конструктора, прототипа и т. д. должен быть в состоянии ответить

  • Объявления функций и объявления переменных

Я, наверное, знаю это, и я также говорил о вещах, связанных с es6.

  • Проблема, на которую указывает это

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

  • объектно-ориентированное понимание Диди спросил о понимании и реализации и рассказал о реализации es5 и es6 с точки зрения инкапсуляции, наследования и полиморфизма.

  • Что вы думаете о языке js

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

  • Очки знаний, связанные с ES6

Этот ответ не должен быть очень подробным, вероятно, я использовал его, и я также изучал реализацию промисов, но я не помню, какая компания спрашивала, как реализован генератор. Наверное, от итератора вкратце объяснил свой план, а потом сказал, что не видел его. Тогда не о чем спрашивать о других вещах. Базовая процедура — это es6, вы поняли? какой синтаксис использовался. Позже мы можем поговорить о том, какая новая функция реализована, или обратиться к babel и webpack за соответствующими интервью.

Реагировать раздел

  • Должен быть жизненный цикл для реактивной части

Здесь я кратко расскажу о каждом жизненном цикле, о двух методах написания es5 и es6 и о том, какие операции мы обычно используем для каждого жизненного цикла.

  • Является ли setState асинхронным или синхронным

Когда Али спросил, когда я был на стороне, я, наверное, говорил о двух методах настройки setState, и тот, который показывает синхронизацию.

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

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

  • Общий процесс редукции

Мне это знакомо, и я расскажу обо всех стеках технологий, а также о принципе react-redux, высокоуровневых компонентах и ​​принципе реализации redux-saga. (Если успеете на встречу, говорите все и сами выучите ритм. Но это должно быть уместно. Например, если вы спросите меня про es6, я буду говорить 20 минут. В общем, интервьюер будет немного нетерпелив. Так что это зависит от ситуации. зависит)

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

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

  • Компонент a находится в компоненте b, компонент c находится в компоненте a, как сделать так, чтобы компонент a и компонент c находились на одном уровне

На вопрос, который Али задал во время интервью, после некоторого размышления ответил «нет». После проверки этого, вероятно, можно добиться, возвращая компоненты без обертывания элементов в react16. Потому что я счастливо болтал с Али позже, я добавил WeChat, и осмелился спуститься с ним.Он сказал, что есть еще способ спасти страну через кривую.

  • Оптимизация реагирующих компонентов

Поговорим о pureRenderMixin, ShouldComponentUpdate и т. д., а также о дизайне компонентов и способе написания функций для формирования марионеток.

  • Связь реактивных компонентов

Также было сказано несколько способов сделать это, снова было сказано проп, контекст (кстати, контекстная реализация react-redux), редукс и даже трансляция

  • Реализация алгоритмов виртуального дома и сравнения React

Али спросил кроссфейс и прямо сказал, что исходники метода реализации не читал, но примерно объяснил принципы и шаги, а конкретный код писать не знаю.

  • Вы понимаете MVC и MVVM?Как реализовать двустороннюю привязку данных и одностороннюю привязку?

Диди спрашивал, но я еще не знал метода реализации, и тут я рассказал про шаблоны проектирования MVC и MVVM, т.к. раньше я использовал angular1, наверное, я говорил про шаги грязной проверки и роль view-model

  • Реализация React-маршрутизатора, вещи, связанные с одностраничным приложением

В нем примерно рассказывается об общем использовании react-router и о том, как использовать API истории h5 для реализации переходов маршрутизации, когда react-router не используется.

  • Вы понимаете реакцию ssr? Как добиться

Али спросил на стороне.Он написал демку на github, но не использовал другие сторонние библиотеки.Здесь я кратко расскажу о элементах конфигурации вебпака и общих идеях реализации и мерах предосторожности.

  • React наверное просили написать так. Другое дело, как писать код и анализировать конкретные бизнес-сценарии. Это относительно непопулярно. Я остановлюсь на этом здесь. На самом деле, это проверит ваш проектный опыт. Конечно, есть и некоторые вопросы интервью для React Native, такие как общие компоненты и как общаться с нативом, У них много лайков и вопросов, но, поскольку RN не очень тщательный, они не очень понимают принцип взаимодействия. Что ж.

браузер

  • Как получить HTML после http трехстороннего рукопожатия, как загрузить его в браузер

Вопрос, заданный Али, я раньше занимался обменом связанными технологиями в мире, поэтому я, вероятно, знаю, что от процесса до различий между различными ядрами (разница часть кратко упоминается) я говорил о процессе dom, CSSDom и paint . Затем интервьюер спросил, как предотвратить перерисовку и перекомпоновку. Вероятно, следует избегать таких операций, как перерисовка и перекомпоновка. NetEase также спрашивал о перерисовке и оплавлении.

  • Что обычно делается для фронтенд-оптимизации?

Об этом уже говорилось ранее, военные правила Yahoo или что-то в этом роде. И оптимизация выше сгиба. Затем интервью было связано с некоторой предварительно загруженной информацией заголовка http Я не видел этого, и ответ был не очень хорошим.

  • кеш браузера

Я также сделал соответствующий технический обмен по этому поводу, и я также прочитал "Иллюстрированный http", который, вероятно, сказал из http 1.0 и 1.1.Одна из компаний спросила разницу между 200 From cache и 200 ok (есть лайки), это правда я проигнорировал это, а потом проверил и узнал об этом. На самом деле это сильный кеш

  • http общие коды состояния

От 100 до 500, наверное, больше дюжины. По сути, это то самое, что в «Иллюстрации http» сознательно запоминалось в то время.

  • http2.0 связанные

С одной стороны, NetEase заявила, что 2.0 использует двоичный формат, мультиплексирование, сжатие заголовков пакетов, активную отправку сервером и соответствующий контент веб-сокета.WebSocket: от новичка до мастера за 5 минут. Затем NetEase спросил, как сжимается заголовок? Я. . . ? ? понятия не имею. . . Затем я, вероятно, спросил о TLS/SSL для https, и я читал о том, что связано с htts, в комиксах раньше, и я, вероятно, рассказал историю в комиксах~

  • Разница между post и get

Этот ответ не очень хорош, это также вопрос, заданный крупной фабрикой, и мой ответ - все внешнее. Потом прочитал статью, наверное знаю.99% людей неправильно понимают разницу между GET и POST в HTTP.

  • Больше ничего не помню, но добавлю, когда вспомню.

инструменты для сборки

  • Вы написали расширение для веб-пакета, плагина или загрузчика?

Я прочитал книгу «Объяснение веб-пакета простыми словами», поэтому я могу в основном ответить на нее. Включая принципы и меры предосторожности при написании загрузчика и плагина. Конечно, я не писал его сам. . ."Углубленный веб-пакет"

  • Babel не задавал много вопросов, но я его тоже подготовил, включая функцию каждого пакета и внутренний процесс конвертации.Не помню какая компания спрашивала, наверное я тоже говорил про процесс конвертации babel.

заключительные замечания

Ali, NetEase и другие уведомления будут объявлены со следующей недели. Другие компании в основном получали предложения, но, в конце концов, срок действия основных предложений, которые они получают, у крупных заводов истек. . . Никак, ведь есть большая фабричная мечта. Что ж, на самом деле это довольно удачно: руководитель отдела занятости Али и интервьюер очень весело болтают после добавления WeChat. Также спасибо супервайзеру GitHub за то, что следил за мной. Надеюсь присоединиться~

Это все, о чем я могу думать, я добавлю больше позже, если я думаю об этом.

ps: Внимание наггетсов в последнее время немного повысилось, и я не знаю почему, да и особо я в последнее время не учился, так что поторопился разобрать работу, не зная, работа ли это. Извините, если это не очень хорошо организовано. После окончания опыта поиска работы буду аккуратно лепить.