Личная ситуация
- Окончил университет Шуанфэй в провинции Гуандун, школа набрала на работу в Ци Аньсинь (бывшая служба безопасности предприятия 360), и только что проработала год (трудно найти работу, но люди в реках и озерах и могут' т помочь себе).
- leetcode brush вопросов 200+, в основном способных справиться с интервью. Wall Crack предлагает решать алгоритмические задачи, что действительно здорово и тренирует мышление в области кодирования.
Футу (предложение вызова)
одна сторона
Продолжительность: 47 минут. Слишком долго не было интервью. Такое чувство, что я не ответил на многие вопросы. На самом деле я получил второе уведомление через час. Спасибо интервьюеру за милосердие.
- Самостоятельное введение
- 360企业安全,奇安信,360之间的关系?为什么学前端? Как вы учитесь?最近在看什么书吗? ...
- задавать вопросы
var a=1;
function fn(a){ a=2; }
fn(a);
console.log(a); // 1
var a={a:1};
function fn(a){ a.a=2; }
fn(a);
console.log(a.a); // 2
'use strict';
var a = 1;
var obj = {
a:2,
b:function(){
this.a = 3;
},
print:function(){
console.log(this.a);
}
};
obj.print(); // 2
var print = obj.print;
print(); // 报错,严格模式下this默认是undefined
function F(){
this.a = 1;
}
var obj = new F();
console.log(obj.prototype); // undefined,对象没有原型,函数才有原型
- Два упорядоченных массива A и B определяют, является ли B подпорядком A? Требуется, чтобы формат данных нельзя было конвертировать, а API нельзя было использовать
[1,2,3,4,5],[2,3,5] => true
// 遍历B数组,再去A数组里找有没有这个值。利用有序这一特点,记录A遍历到哪里,下次从记录点开始即可。
- Оптимизация загрузки проекта
две стороны
Продолжительность: 1 час 04 минуты, пытки интервьюера, различные вопросы по алгоритму, вопросы по математике, грибы. . .
-
Когда вы начали изучать интерфейс? Зачем изучать фронтенд? Как ты этому научился?
-
Имея строку S длины N (1≤N≤2000), создайте строку T длины N. Изначально T — пустая строка, а затем повторяются любые из следующих операций.
- Удалить символ из начала S и добавить его в конец T
- Удалить символ с конца S и добавить его в конец T
Цель состоит в том, чтобы построить строки, которые лексикографически как можно меньше.
-
проблема с топком? Какова временная сложность быстрой сортировки? Если массив очень большой, как его оптимизировать? Какова временная сложность маленькой верхней кучи?
-
Найдите все элементы из массива длины n, которые удовлетворяют обоим из следующих двух условий по временной сложности O (n):
- элемент больше, чем все элементы, расположенные слева от него;
- Этот элемент меньше, чем все элементы, расположенные справа от него.
-
Продолжайте бросать монеты, пока кто-нибудь не выиграет. Условие победы A состоит в том, чтобы ходить первым, а затем решкой, а для победы B - иметь две решки подряд.Какова вероятность победы A в игре AB?
-
В Хэдонге проживает 600 000 человек, а в Хэси — 400 000. При 1 миллионе звонков сколько звонков будет через реку?
-
Вы понимаете междоменные? Зачем нужны междоменные ограничения? Каковы решения для междоменных решений?
-
Выбрать проект для обсуждения? Сколько людей развиваются вместе? За какую часть вы отвечаете? С какими техническими трудностями вы столкнулись?
-
Что будет, если вставить в середину html код из 100 000 циклов? Как решить застрявший феномен? Когда скрипт будет выполнен после добавления атрибута defer? Что происходит после принятия отсрочки, когда пользователь нажимает на страницу? Есть ли другой способ, если WebWoker отключен?
-
В чем разница между загрузкой 10 ресурсов под одним доменным именем и загрузкой под несколькими доменными именами?
Три стороны
Продолжительность: 50 минут, на встречу приходят не фронтенд-начальники из других отделов, и они задают вопросы. . .
- Оптимизировать скорость загрузки проекта
- Есть 100 бутылок с водой, одна из которых ядовитая, и мыши умрут через 3 дня, попробовав немного ядовитой воды.По крайней мере, сколько мышей нужно, чтобы определить, какая бутылка воды ядовита в течение 3 дней?
- Четыре значения [a,b] и [x,y], как судить о пересечении этих двух диапазонов?
- Вопросы по алгоритму:выпуск акций
- 25 детей, 5 трасс, сколько пробежек потребуется, чтобы выбрать 3 самых быстрых детей?
- Вопросы по алгоритму:701. Вставка в двоичное дерево поиска
Куайшоу (предложение вызова)
одна сторона
Продолжительность: 1 час 07 минут, интервьюер будет направлять и отвечать на не очень привычные вопросы, очень приятно.
- Самостоятельное введение
- Введение в проект
- Проблемы, возникающие в проекте и пути их решения
- задавать вопросы
for(var i=0;i<3;i++){
document.body.addEventListener('click', function(){
console.log(i) // 点击之后输出3 3 3
})
}
Как преобразовать может ввод 0 1 2? Почему var можно изменить на let?
Function.prototype.a = () => alert(1)
Object.prototype.b = () => alert(2)
function A(){}
var a = new A()
a.a() // 报错
a.b() // 2
Как преобразовать для выполнения предупреждения (1)?
A.a()
Function.a()
a.constructor.a()
Продолжать
console.log(a)
var a = 1
console.log(b)
let b = 2
console.log(c)
function c(){}
Продолжать
var x = 20
function a(y){
var x = 10
return get(y)
}
function get(y){
return x+y
}
console.log(a(10)) // 30
- Promise.allSettled понимаете? Рукописное обещание.allSettled
- Вопросы по алгоритму:70. Подъем по лестнице
- Напишите метод для генерации случайных значений цвета, например #c1c1c1
- Принцип двусторонней привязки Vue
- Принцип реализации вычисляемого
- Почему браузеры блокируют запросы из разных источников? Как решить междомен? Должен ли каждый запрос из разных источников достигать сервера? Как на стороне браузера перехватывается отправка междоменных запросов (отправка, не получение)?
- Вы понимаете кеширование браузера? Где обычно хранится сильный кеш? Вычисление всего файла для получения etag будет потреблять производительность, как это решить? Что делать, если я не хочу использовать кеш и каждый раз запрашивать последнюю версию? В чем разница между no-store и no-cache?
две стороны
Продолжительность: 1 час.В целом интервью не хватает широты самого себя.После интервью интервьюер сказал, что ему нужно встретиться с интервьюером.
- Реализуйте функцию findLastIndex(), которая возвращает индекс последнего вхождения указанного числа в «упорядоченном» массиве.
Например, findLastIndex([1,2,3,3,3,4,5], 3) возвращает 4. Какова временная сложность? Какова максимальная временная сложность? 2. Пожалуйста, внедрите метод кэширования запроса cacheRequest(url, callback), чтобы гарантировать, что при использовании ajax на сетевом уровне фактически выдается только один запрос для одного и того же API для экономии сетевого трафика (при условии, что существует метод, лежащий в основе запроса для инкапсуляции ajax-запросы, формат вызова: запрос (url, data => {}). Например, код вызывающего абонента выглядит следующим образом.
// a.js
cacheRequest('/user', data => {
console.log('我是从A中请求的user,数据为' + data);
})
// b.js
cacheRequest('/user', data => {
console.log('我是从B中请求的user,数据为' + data);
}
- Реализуйте функцию для преобразования строки запроса в URL-адресе в объект, надеясь учесть как можно больше крайних случаев. (Без запроса, тот же ключ, экранированные символы нужно вернуть)
- Расскажите о проекте, как оптимизирован проект? Как он измеряется после оптимизации? Расчет времени выше раза?
- Разница между v-show и v-if
- Как посчитать, сколько раз компонент появляется в окне просмотра? Как используется IntersectionObserver? Откуда вы знаете, что узел DOM появляется внутри области просмотра?
- Каков механизм реализации vuex? Какие шаблоны проектирования используются в vuex? Есть ли другие?
- Вы использовали пользовательские директивы? В каком сценарии он используется?
- Поддерживаются ли общедоступные компоненты? Как это делается? Вы отправляли пакеты через npm? Вы видели, как это делают библиотеки компонентов с открытым исходным кодом других людей?
- Расскажите о процессе сборки webpack
- Как webpack обрабатывает циклические ссылки на модули?
- В чем разница между загрузчиком и плагином? В каком сценарии он используется? Вы сами написали плагин?
- Знаете о других инструментах сборки? Каковы сценарии использования Rollup?
- Как вы изучаете новые технологии? На какие новые технологии вы обращаете внимание в последнее время?
Три стороны
Продолжительность: 1 час 04 минуты, о проекте и тут начинаются вопросы, интервьюер очень юмористический. 👍
- Связанный с проектом (много разговоров об этом)
- Я не получил правильное значение случайного цвета на одной стороне, и интервьюер сказал мне продолжать делать это.
- Напишите метод для преобразования шестнадцатеричных значений цвета в десятичные. (#fff => rgb(255,255,255))
- Задал несколько вопросов по css (вес css, относительное позиционирование, абсолютное позиционирование, верхнее поле отрицательное)
CVTE (двусторонняя подвеска)
Продолжительность: 46 минут, ощущения средние.
одна сторона
- Расскажите что-нибудь о цикле событий JS? Является ли JS многопоточным? (ps: мое предыдущее описание ответа немного ошибочно) Знаете, какие микрозадачи и макрозадачи? В чем разница между микрозадачами и макрозадачами? Является ли функция обратного вызова привязанной к событию макрозадачей или микрозадачей?
- Расскажите что-нибудь о замыканиях JS? Как создавать замыкания? Что случилось? Как с этим бороться?
- Вы только что говорили о сборке мусора, давайте поговорим о сборке мусора.
- Что делать, если вы хотите узнать, есть ли утечка памяти на странице?
- Вы только что говорили об оптимизации производительности, как вы использовали инструменты разработчика Chrome в процессе?
- Каковы недостатки WebWorker? Как получить контекст основного потока в рабочем потоке? Есть ли какое-либо другое решение, кроме использования WebWorker, для решения проблемы зависания? Интервьюер предложил мне узнать о волокнах React. Вы проверяли время связи пробуждения?
- Технические трудности, с которыми столкнулся проект?
- Что такое виртуальный список?
- Принцип двусторонней привязки Vue
- Основы Vue Что бы вы знали? Расскажите мне об алгоритме сравнения и посмотрите, смогу ли я его понять? (Интервьюер использует React)
- Какие оптимизации сборки есть у WebPack?
- Инкапсуляция публичных компонентов, на что следует обратить внимание?
две стороны
Продолжительность: 42 минуты, на половину вопросов ответы не знаю.
- Проект связанный, просили давно. . .
- Знаете ли вы о совместном редактировании документов?
- Говоря об объектно-ориентированном, что такое полиморфизм?
- Подскажите, как это делает плагин vscode?
- Знаете ли вы шаблоны проектирования? Есть ли еще что-нибудь, кроме режима наблюдателя, я им обычно пользуюсь.
- Поговорим о мини-программах WeChat.
- Знаете ли вы об адаптации мобильного терминала? рем-макет
- Вы знаете что-нибудь о WebAssembly?
- Электрон понимает?
- Вы знаете о TypeScript?
- Какие новые точки знаний вы изучаете в последнее время, помимо того, что мы сказали выше.
Douyu (односторонний, но HR сказал, что кто-то принял предложение, а не HC)
Продолжительность: 1 час 13 минут. Два интервьюера по очереди задавали вопросы, честно говоря, у меня после интервью немного пересохло слюной.
- связанные с проектом.
- Разговор об анти-тряске и троттлинге. Рукописный анти-встряска.
- Есть результат, для получения которого требуется много вычислений, мы храним его локально и пересчитываем только при изменении ресурса, как это сделать?
- Что случилось с адресом, введенным в адресную строку? К каким сценариям применим надежный кеш и согласованный кеш?
- Есть сценарий, когда веб-странице нужно запросить ресурс далеко, а у компании нет денег на покупку CDN Как использовать оптимизацию кеша?
- 说一下闭包?闭包有什么用? Каковы недостатки?
- Подскажите, как JS делает сборку мусора?
- Принцип двусторонней привязки Vue? Вызов push для добавления элементов в массив автоматически обновит его? Почему?
- Вы видели исходный код vue? Разговор о принципе diff
- задавать вопросы
var a = 1 + '2'
var b = 1 - '2'
var c = [1,2] + [3,4]
- Как вы оценили тип данных JS?
- JS имеет синхронные и асинхронные задачи, как браузер делает его?
- Знаете ли вы о функциях ES6? Основной принцип Promise, а как насчет генератора? А как насчет асинхронного ожидания?
- Как получить первую точку пересечения пересекающегося связанного списка?
- В чем разница между вызовом, применением и привязкой? Как работает вызов?
- задавать вопросы
function lottery(whiteList, participant) {
}
// whiteList:类型字符串数组,意义是表示从其他系统中计算出来的活跃用户,如果这批用户参与抽奖,则必定让他中奖。长度不超过1万
// participant:类型字符串数组,意义是表示此次活动中真正参与抽奖的用户,长度约是10万。
// 函数希望从participant返回 2 万个用户,表示中奖用户,优先选取whiteList上的用户,若不在whiteList上,对participant 剩余的随机 选取即可。
Байт (двусторонний)
одна сторона
Продолжительность: 1 час 05 минут, весь процесс собеседования относительно прост, например 👍
- Расскажите что-нибудь о rem, em, px, vh, vw
- Как нарисовать линию 0,5px
- отношение веса css?
- Какие свойства CSS будут наследоваться, а какие нет?
- Относительно кого указаны проценты полей и отступов?
- Разница между @import и ссылкой
- Каково значение свойства justify-content?
- Механизм рендеринга браузера? Перерисовывать и перерисовывать? Существует ли однозначное соответствие между узлами дерева dom и дерева рендеринга?
const str1 = 'abc'
const str2 = new String('abc')
str1 == str2
str1 === str2
str1.substr()
str2.substr()
- В чем разница между var, let и const? Что такое временная мертвая зона?
function showName() {
console.log('Toutiao');
}
showName();
function showName() {
console.log('OceanEngine');
}
showName();
var myname = "abc"
function showName2(){
console.log(myname);
var myname = "aabbcc"
console.log(myname);
}
showName2();
- Что делать, если я не хочу, чтобы другие добавляли или удаляли элементы из объекта obj?
- Улучшите следующую функцию, чтобы реализовать загрузку изображений.
function createImg(url){ }
createImg(url).then((value) => {
document.body.appendChild(value)
})
- Как решить проблемы совместимости с ES6?
- Функция стабилизации и троттлинга?
- Принцип двусторонней привязки Vue? Производительность виртуального DOM? держать в живых?
$setполезность? $следующий тик?
<template>
<div>{{a.b}}</div>
</template>
<script>
export default {
data () {
return {
a: {}
}
},
created () {
this.a.b = 1
},
mounted () {
this.a.b = 2
}
}
</script>
for(let i=0;i<10;i++){
this.a = i
this.$nextTick(() => {
console.log(this.a)
})
}
- Что нового в http2? Что понимается под мультиплексным путем? процесс шифрования https?
- Что с кешем браузера?
- Значение 301, 302, 403
- Что вы знаете об атаках на веб-безопасность? Как защищаться?
- Как решить междоменный
две стороны
Самостоятельности по-прежнему не хватает, повесьте трубку. После интервью я не пересматривал тему, и не могу вспомнить тему.
Рекрутинг 🎉
- Я присоединился к Kuaishou на неделю, и я только сейчас опубликовал эту статью, она должна быть жесткой и широкой, и я наберу интерфейс. . . ХК большое количество, база в штаб-квартире Куайшоу в Пекине, менторы каждый день проходят собеседования😏, а так же призывают просить резюме, не бойтесь утомлять начальство, начальство все сверхчеловеки👍.
- Студенты, которым нужны внутренние рекомендации, могут добавить меня в WeChat hh18316452113, и у нас будет глубокий обмен мнениями. 😊
напиши в конце
- Люди что-то делают, и что-то происходит на небесах. Во время собеседования покажите, что вы знаете.Если вы пройдете его, придет ваша сила, и придет ваша судьба.Если вы не пройдете его, ваша судьба может не прийти.
- Интервью заставляют людей расти, и благодаря этому интервью я также осознаю свои недостатки и продолжаю следить за ними💪.
- последнее спасибо
@小小晴_Интроверт, хахаха.