Предварительное собеседование по социальному набору холодной зимой

опрос

предисловие

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

Повторная выгода

одна сторона

  1. Представьтесь
  2. Увидев, что вы использовали mobx, расскажите мне о преимуществах mobx? Принцип реализации?
  3. Каковы наиболее впечатляющие проблемы, с которыми вы столкнулись в проекте со времени вашей работы? Применяли ли вы какие-то собственные идеи и новые технологии в проекте?
  4. Расскажите о разнице между TS и ES и о преимуществах TS?
  5. Вы говорите, что вы быстрым учащимся, и что вы закончили прошлый год, вы знакомы с бизнесом и как проект? После прочтения через систематическую книгу?
  6. Знаете ли вы что-нибудь о мини-программах? (Я только написал демо)
  7. Знаете ли вы что-нибудь об инструментах для упаковки?
  8. Помимо React, какие еще фреймворки вы использовали?
  9. Найдите N-й член последовательности Чипоначчи
  10. Получить первые N членов последовательности Чипоначчи
  11. Найти количество уровней объекта (после того, как я написал это, я спросил, не нужна ли вам рекурсия, просто используйте циклы для ее реализации)
  12. Этот вопрос машины для достижения следующей функции
function machine() {
    
}
machine('robot').execute() 
// start robot
machine('robot').do('eat').execute(); 
// start robot
// robot eat
machine('robot').wait(5).do('eat').execute();
// start robot
// wait 5s(这里等待了5s)
// robot eat
machine('robot').waitFirst(5).do('eat').execute();
// wait 5s
// start robot
// robot eat

две стороны

  1. Расскажите о вашем бизнесе там? Ваш бизнес полностью в приложении? (Android, IOS, H5 и даже небольшие программы и быстрые приложения доступны, в основном все сделано с помощью веб-просмотра с h5)
  2. Вы недавно интересовались технологией, которую вы в основном исследуете? Почему Вы заинтересованы?
  3. Я посмотрел на ваш гитхаб, и там был отмечен react.backbone, что это?
  4. Я вижу, что в вашем github есть mobx-jquery, что он делает?
  5. Как вы реализовали наблюдателя в mobx-jquery? (инкапсулированный автозапуск) Так в чем принцип автозапуска?
  6. Какие у вас требования к команде? Что вы больше всего приобрели за последний год после выпуска?
  7. Раз уж вы написали ТС, в чем преимущества ТС? Вы сказали, что после изменения поля другие места, использующие исходное поле, сообщат об ошибке, так как же отследить, было ли сделано изменение? Как добавить тип к методу в соответствии с файлом типов в vscode?
  8. Видя, что в вашем резюме написано поддерживать старый проект, какие рамки у этой ящерицы? (Гибридная структура xxxxx на основе инкапсуляции магистрали)
  9. Тогда давайте проведем викторину. Реализуйте функцию, чтобы получить весь текст в узле DOM по порядку.
  10. Ты хочешь что-нибудь спросить у меня? (Что ты обычно делаешь в течение дня в компании?)

Суммировать

Я чувствую, что технологический стек может не быть хорошим совпадением для этого. Они в основном делают H5 и небольшие программы, а H5 также является в основном Vue, поэтому эти проблемы в основном не очень глубоко.

В интервью, кроме mobx, меня не спрашивали ни о технологиях, связанных с реактом, ни о разработке приложений, их интересовал только ТС, о ТС я, к сожалению, мало писал.

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

Прикрепите ответ на вопрос 12.

function machine(name) {
    return new Action(name)
}
const defer = (time, callback) => {
    return new Promise((resolve) => {
        setTimeout(() => {
            resolve(callback())
        }, time * 1000)
    })
}
class QueueItem {
    constructor(defer, callback) {
        this.defer = defer;
        this.callback = callback;
    }
}
class Action {
    queue = []
    constructor(name) {
        this.name = name;
        this.queue.push(new QueueItem(0, () => console.log(`start ${this.name}`)))
    }
    do(eat) {
        this.queue.push(new QueueItem(0, () => console.log(`${this.name} ${eat}`)))
        return this;
    }
    wait(time) {
        this.queue.push(new QueueItem(time, () => console.log(`wait ${time}s`)))
        return this;
    }
    waitFirst(time) {
        this.queue.unshift(new QueueItem(time, () => console.log(`wait ${time}s`)))
        return this;
    }
    async execute() {
        while(this.queue.length > 0) {
            const curItem = this.queue.shift();
            if (!curItem.defer) {
                curItem.callback();
                continue;
            }
            await defer(curItem.defer, curItem.callback)
        }
    }
}

Футу

с одной стороны (не помню)

  1. Само введение
  2. Зачем оставлять? Вы сказали, что считаете дело, которым занимаетесь, скучным, так как же не быть скучным? Чего вы ожидаете от команды?
  3. Что такое xss-атака? В чем вред? Как с этим бороться?
  4. реализовать глубокую копию
  5. Есть два упорядоченных массива M и N, как определить, является ли N подмножеством M?
  6. В чем разница между стрелочными функциями и обычными функциями?
  7. Какое значение выводит setTimeout в цикле for? Как решить эту проблему? (пусть и замыкание решено, просто объясните принцип)
  8. Какова роль каждого члена вашей команды? Какую роль вы играете в нем?
  9. Как оптимизировать скорость загрузки страницы? Как оптимизировать, если много мелких иконок? Каковы недостатки иконок?
  10. Какие существуют решения для совместимости мобильного терминала с различными устройствами? Каковы недостатки этих решений?

Дада-JD Даоцзя

Когда собеседование прошло, я сначала сделал тестовую работу, в основном для изучения http, css и js.

Письменные экзаменационные вопросы (просто запомните эти вопросы, связанные с http)

  1. Каковы новые возможности http2.0? (Варианты: мультиплексирование, сжатие заголовков, установка приоритета, отправка сервером, двоичная передача)
  2. Какова роль DNS? (Варианты: разрешение доменного имени, брандмауэр, балансировка нагрузки, контроль трафика и еще один, который я не помню)
  3. Какие из следующих протоколов являются надежными? (варианты TCP, UDP, FTP, HTTP и один не помню)
  4. Какое из следующих утверждений о POST-запросах верно? (Запрос POST может иметь параметры только в теле, сервер должен иметь возможность получать данные, отправленные запросом POST, запрос POST отправляет два пакета данных, а запрос POST может кэшироваться)

одна сторона

  1. Что такое БФК? Почему вертикальные поля перекрываются? Как решить эту проблему?
  2. Что такое относительные единицы в CSS? Они относительно чего?
  3. Кого фиксируют относительно? Будут ли проблемы, если я добавлю преобразование?
  4. Что такое XSS-атака? Как с этим бороться?
  5. Что не так с innerHTML? Есть ли простой способ избежать вставленного текста от XSS-атаки?
  6. Почему не рекомендуется использовать встроенные элементы стиля? Каковы недостатки встроенных элементов? (файлы css можно кэшировать)
  7. Что такое цепочка прототипов? На что указывает конец цепочки прототипов?
  8. В чем разница и функция файлов cookie, sessionStorage и localStorage?
  9. Что такое коды состояния http? В чем разница между 301 и 302? Что означает 304?
  10. Что такое закрытие? Каковы сценарии использования? Какие проблемы может вызвать закрытие?
  11. Что такое мелкое копирование и глубокое копирование? Как реализовать глубокую копию?
  12. В чем разница между lodash и ramda?
  13. В чем разница между атрибутом и свойством в HTML?
  14. Как решить перекрестный домен?
  15. В чем разница между строкой и строкой из новой строки?

две стороны

  1. Объясните setState в реакции? (Поговорим о производительности и принципе реализации setState)
  2. Если мне нужно загрузить файл и отобразить индикатор выполнения во внешнем интерфейсе, использование setState приведет к обновлению слияния, что вы можете сделать? (Promise инкапсулирует setState, использует базовые функции setState и использует асинхронные функции (setTimeout, async) для переноса)
  3. Компоненты с состоянием и компоненты без состояния, некоторые люди говорят, что компоненты с состоянием лучше использовать повторно, а некоторые люди говорят, что компоненты без состояния лучше использовать повторно Как вы обычно разделяете их при написании? (Это все еще зависит от бизнес-сценария)
  4. Если у вас есть реактивный проект, должны ли вы управлять состоянием компонента? (Объясните с трех направлений локального состояния, глобального состояния и глобального хранилища)
  5. Как компоненты в реакции реагируют на изменения данных и обновления?
  6. Каковы этапы жизненного цикла в реакции? Какие API жизненного цикла устарели в react16?
  7. Почему по сравнению с реальным DOM виртуальный DOM обеспечивает оптимизацию производительности?
  8. Как алгоритм сравнения сравнивает старые и новые узлы и обновляет их? Что делает ключ?
  9. Если у меня здесь есть текстовый компонент, и я изменю текст внутри, повлияет ли это на другие компоненты? (Так что это еще зависит от сцены)
  10. Если в магазине есть поле cityList, нам нужно сохранить исходное состояние после того, как пользователь обновит его и сделать кеширование.Если в это время оформляется заказ, то нужно закрыть логистику и дистрибуцию определенного города. на этот раз город нужно убрать, а пользователя Как это сделать не обновляя браузер? (Честно говоря, я не понял этого вопроса. Я сказал обновить магазин и кеш, но это было отклонено интервьюером. Позже я мог только сказать, что не знал, и я забыл спросить его, что был ответ)
  11. Вы знаете что-нибудь о вебпаке? В чем разница между чанк, пакет и модуль?
  12. Расскажите о разнице между Hash, Chunkhash и Contenthash?
  13. Каковы преимущества TypeScript?
  14. Как происходит процесс рендеринга страницы браузера?
  15. Будет ли css блокировать рендеринг страницы? Если да, то как решить? Как загрузить только css главной страницы?
  16. Как вы думаете, в какой технологии вы лучше всего разбираетесь?

Комплексный (комплексный + HR + руководитель отдела)

  1. Найдите один из ваших проектов и расскажите о проблеме, которую этот проект решает, будь то деловая или техническая.
  2. Какова ваша роль в этом проекте? Что вы наделали? Где вы можете проявить свои способности?
  3. Почему вы пришли искать работу, проработав в Ctrip всего больше года? Каков ваш текущий ранг?
  4. Какие книги вы прочитали в последнее время? Над какими технологиями вы сейчас работаете?
  5. Вы использовали вью? В чем разница между чувствовать и реагировать? Если вас попросят сделать проект vue, сможете ли вы его принять?
  6. Это проект по рефакторингу Vue для React. Недавно были наняты люди для создания этого куска контента, в том числе веб-пакет и т. д. Как вы думаете, вы сможете его удержать?
  7. Вы планируете поселиться в Шанхае? Когда планируете вернуться на вторую строчку?
  8. Каковы ваши карьерные планы на ближайшие 3-5 лет?
  9. Другие вопросы конфиденциальности и т. д.

Суммировать

Во время второго интервью интервьюер спросил меня, не хочу ли я что-нибудь спросить? Я сказал, для таких как я, только что закончивших 1-2 года обучения, я мало контактирую с вебпаком и узлом, и в компании трудно связаться, и я не могу столкнуться со многими глубокими сценариями при написании проектов. сам.Где его развивать? Что важнее?

Интервьюер сказал, что, когда вы сказали, почему вы ушли с работы, вы уже очень ясно объяснили это, и я думаю, что вы нашли ответ. Я думаю, что для людей, которые закончили учебу 1-3 года назад, очень ценно иметь возможность самостоятельно руководить проектом и командой.

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

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

Это самое длинное собеседование, с которым я когда-либо сталкивался, включая пять раундов до и после HR. Тем не менее, это все равно приятно, по крайней мере, я накопил много ценного опыта интервью.