предисловие
Сейчас я младший и хочу найти стажировку, чтобы заниматься спортом летом, поэтому я также добавил свое резюме и попробовал его для собеседования. Эммм, я чувствую, что я все еще слишком ленив. Мне действительно нужно укрепить себя , особенно с точки зрения алгоритмов, это очень плохо. Все, поторопитесь и проголосуйте недавно! ! Партии заранее! Он не будет включен в систему, если он зависнет! Работайте усерднее в будущем! ! Утка! !
Если вам интересно, вы можете взглянуть на те знания, которые я собрал, это может быть полезно ~ Желаю вам скорейшей стажировки! ! ! nuggets.capable/post/684490…
Кстати, Amway сделает небольшой проект~ Хи-хи, надеюсь пройти мимо и поставить звезду!
большое спасибо
CVTE
Позвольте мне получить первое предложение в моей жизни
Суммировать
-
Подводя итог заранее, эти интервью заставляют меня чувствовать себя эммм, все они уделяют больше вниманиякомпьютерная сеть,информационная безопасность,Рамочный принципзнаниеHTTP-протокол,TCP-рукопожатие,Всякие сетевые штучки...Ах, много, много, основная часть, каждый раз, когда я могу спросить что-то новое, чего не могу, я плачу
-
Короче говоря, у emmm все еще есть хорошая основа, и на принцип фреймворка и аспекты узла также нужно обратить внимание. Затем интервьюер просматривает резюме и в основном спрашивает на основе резюме.Так что, если вы незнакомы и не уверены, не пишите об этом в резюме! ! !
-
Во-вторых, если у вас есть собственныйНебольшие проектыЭто лучше всего.После того, как интервьюер поймет основную часть, он задаст вопросы о проекте.Спросите, какие основные моменты, трудности, с которыми вы сталкиваетесь, и как их решить. Они ценят умение решать проблемы. Однако, если в проекте есть явные неразумные места или недочеты, они схватятся и зададут вопросы, и спросят, как это решить в будущем.
-
обычно спрашиваю тебякак научитьсяФронтенд, а затем какие статьи вы читаете в последнее время, о каких новых горячих точках знаний вы узнали в последнее время и т. д. Обычное накопление также очень важно, и тогда вы также будете задавать вопросы, основанные на том, что вы сказали, поэтому, если у вас есть способность, вы также можете просмотреть и направить интервью Чиновник приходит, чтобы спросить, в чем вы хороши хахахаха (ручная собачья голова)
Спрашиваемые вещи смещаются к основам, а затем медленно сублимируют это, к проектам, к расширению мышления, применению практических сценариев и т. д. Содержание писаний лиц неполно, и, вероятно, так оно и есть! ! Хахаха Мино вживую и увидишь! Может быть, это помогает! Некоторые вещи неудобно раскрывать слишком много, большинство из них - основы, и их достаточно унести обратно!
Сторона CVTE (сверху)
На телефонном интервью интервьюер был очень любезен, и весь процесс проходил в чате, он спросил о проекте и высказал несколько мнений. Ха-ха-ха, самое глубокое — попросить меня думать, что я вынужден заставить Х-Х-Х.
- В основном спрашивают о проекте
- основы js
- компьютерная сеть
ЦВТЭ двусторонний (сверху)
Что касается видео, эта сторона все еще немного нервничала. Внезапно я увидел красивого парня в маске, но мы поболтали, а затем в основном говорили о проекте. Затем я задал несколько вопросов о функции проекта, и нашел несколько недостатков. Я очень благодарен этому интервьюеру. Я очень терпелив, чтобы направлять меня, когда я не могу решить проблему алгоритма. Я тронут. Есть некоторые детали и глубокое понимание. Не смущайте меня, просто объясни мне это, здорово!
- Главное спросить о проекте
- Связанные с браузером (кеш, хранилище)
- вопросы по реальной ситуации
- проблема алгоритма
// 根据实例输入输出矩阵规律完成以下 matrix 函数:
function matrix(n) {
}
matrix(n).forEach((item, i) => {
console.log(item);
});
// 示例 1
// 输入: 3 or 4
// 输出:
// [ 0, 2, 0 ]
// [ 2, 1, 2 ]
// [ 0, 2, 0 ]
// 示例 2
// 输入: 5 or 6
// 输出:
// [ 0, 0, 3, 0, 0 ]
// [ 0, 3, 2, 3, 0 ]
// [ 3, 2, 1, 2, 3 ]
// [ 0, 3, 2, 3, 0 ]
// [ 0, 0, 3, 0, 0 ]
// 示例 3
// 输入: 7 or 8
// 输出:
// [ 0, 0, 0, 4, 0, 0, 0 ]
// [ 0, 0, 4, 3, 4, 0, 0 ]
// [ 0, 4, 3, 2, 3, 4, 0 ]
// [ 4, 3, 2, 1, 2, 3, 4 ]
// [ 0, 4, 3, 2, 3, 4, 0 ]
// [ 0, 0, 4, 3, 4, 0, 0 ]
// [ 0, 0, 0, 4, 0, 0, 0 ]
Страдает все-таки алгоритм.Этот вопрос не был написан.Собеседник подал некоторые идеи,предполагая,что нужно решить только одну четверть,а потом ее можно перевернуть.Хоть и подсказывают,но все равно не получается.Хахаха ,после собеседования попробовал.Сделайте(спасибо интервьюеру что не завис!)
Следующее основано на том, что интервьюер делает это стук подсказок, считается хорошей первой четвертью, затем флип сращивания
function matrix(n) {
// 求长度
let len = Math.ceil(n / 2)
let arr = Array.from({ length: len }, _ => Array.from({ length: len }, __ => 0))
let temp = null
// 算出四分之一的矩阵
for (let i = 0; i < len; i++) {
for (let j = 0; j < len; j++) {
if (i + j >= len - 1) {
arr[i][j] = len * 2 - i - j - 1
}
}
}
// 水平翻转,搞定上半部分
for (let row = 0; row < len; row++) {
temp = [...arr[row]].reverse().splice(1)
arr[row] = arr[row].concat(temp)
}
// 垂直拼接
temp = [...arr].reverse().splice(1)
arr = arr.concat(temp)
return arr
}
ByteDance (Благодарственное письмо получить√)
В видео алгоритм понес большой урон.Задавался весь вопрос, а потом объяснялись разные точки знаний, вопросы и т.д.Алгоритм давал подсказки и так и не смог этого сделать.Увы, слишком тупо.
(Почему ты не дал мне благодарственное письмо!!! Дай мне иллюзию, что меня можно поймать!!!)
Я ежедневник, который проголосовал на официальном сайте, не знаю, из-за внутренних рефералов или нет, чувствую, что сейчас повешу трубку, но благодарственное письмо запаздывает, и я врываюсь в слезы. , крик (Ах, алгоритм! Мойся внутри!)
Это основные, которые я, наверное, запомнил.
- Блочный элемент центрируется по горизонтали и вертикали
Здесь я использую два, одинtranslate + absolute
, другой — использовать flex для изменения стиля тела. Здесь обратите внимание наheight
Установить как100vh
В противном случае он не будет центрирован по вертикали.
<body>
<div class="block"></div>
</body>
- Прочитайте код, чтобы объяснить причину, а затем расскажите о точках знаний, таких как цикл событий браузера и цикл событий узла.
console.log('begin')
setTimeout(() => {
console.log('setTimeout 1')
Promise.resolve().then(() => {
console.log('promise 1')
setTimeout(() => {
console.log('setTimeout2 between promise1&2')
})
}).then(() => {
console.log('promise 2')
})
}, 0)
console.log('end')
// 答案是
/*
begin
end
setTimeout 1
promise1
promise2
setTimeout2 between promise1&2
*/
- Реализация суммирования (каррирование)
sum(1)(2)(3).sumOf() // 6
sum(1, 2)(3).sumOf() // 6
sum(1, 2, 3).sumOf() // 6
// 一下为答案
function curry() {
let argsList = [...arguments]
let fn = function () {
argsList.push(...arguments)
return fn
}
fn.sumOf = () => argsList.reduce((a, b) => a + b)
return fn
}
let sum1 = curry()
let sum2 = curry()
let sum3 = curry()
console.log(sum1(1, 2, 3).sumOf())
console.log(sum2(1)(2)(3).sumOf())
console.log(sum3(1, 2)(3).sumOf())
- Прочитайте программу, объясните, почему, а затем обсудите различные вещи, такие как контекст.
Я тут накосячил, не заметил, что функция передалаa
Иди в хахахаха, а затем скажи это9 18 27
, стыдно~
var result = []
var a = 3
var total = 0
function foo(a) {
var i = 0
for (; i < 3; i++) {
result[i] = function () {
total += i * a
console.log(total)
}
}
}
foo(1)
result[0]()
result[1]()
result[2]()
// 答案是 3 6 9
- Алгоритм достижения полной перестановки
输入"abc"返回他的全排列组合
以下为答案
var permute = function (nums) {
let path = []
let visited = Array.from({ length: nums.length }, _ => false)
let res = []
DFS(nums, 0, nums.length, path, visited, res)
return res
};
var DFS = function (nums, curSize, len, path, visited, res) {
if (curSize === len) {
res.push([...path])
return
}
for (let i = 0; i < len; i++) {
if (!visited[i]) {
visited[i] = true
path.push(nums[i])
DFS(nums, curSize + 1, len, path, visited, res)
visited[i] = false
path.pop()
}
}
}
- Головоломка: A, B подбрасывают монету, выпадает орёл, A ходит первым, какова вероятность того, что A выиграет
Это совсем ошарашило, сколько вы думаете!
Али - Неизвестный отдел (Внезапная смерть)
Электрическая поверхность, жаль, я даже не начал готовиться к прямой смерти
- Принципы реакции
- свойства файлов cookie
- Разница между localStorage и sessionStorage
- Может ли localStorage работать с разными доменами?
- Перерисовка и перекомпоновка
- httponly
- CSRF и XSS
Али Диндинг - в основном для небольших программ (неуместно)
Что касается видео, я в основном говорил о проекте, а потом задавал много вопросов по сети и безопасности.Команда в основном работает над небольшими программами.Я задавал много маленьких программ.
- Нативный API мини-программы
- Принцип шифрования HTTPS
- Реализация хорошего состояния входа
- Преимущества Реакта
- что происходит после setState
- Реагировать на оптимизацию производительности
- Принцип крючка (как реализовать)
- апплет беговой пул
- В чем разница между браузерами WeChat
- Принцип составления Таро
- Делегирование события (можно зафиксировать фазу)
- Куда делегированы события React?
Ali CBU (ранний самолет)
В электрическом самолете я чувствую себя странно хахаха, я задал хороший вопрос раньше, но вдруг я спросил
Vue
Я умер мгновенно.Оказалось, что я увидел в своем резюме, что проект разработан с использованием Vue, поэтому я спросил, я не должен впредь ставить эти незнакомые в свое резюме!
- делегация мероприятия
- Разница между глубоким и поверхностным копированием
- Object.assign
- BFC
- Fiber
- virtual dom
- алгоритм сравнения
- hook
- процесс веб-пакета
- Упаковочная структура WebPack JS из того, что
- Принцип компиляции Babel
- Преимущества узла
- В узле разница между async/await, генератором и обещанием, контакт
- Несколько пользователей для доступа к серверу чата, у вас 1000 серверов, что вам делать (яма)
- Как реализовать двустороннюю привязку в Vue
- Поток данных Vue
- Разница между Vue и React
- Куча Vue.... (Также сказали, что нельзя это писать в резюме? Я не посмею! Плачь)
Али Летучая Свинья (Первая Лапша)
По телефону это самая длинная болтовня ву ву ву, телефон горячий! Интервьюер - очень приятный человек, эммм действительно замечательный. Он не будет усложнять вам жизнь, он не будет агрессивным, он всегда направит вас к размышлению, а затем задаст подробные вопросы. Если вы хотите знаю об этом, это нормально, это очень приятно.
Наконец-то мы много поговорили по проекту, а потом дали много предложений, указав на то, что некоторые направления можно улучшить, а потом я еще и без зазрения совести задал открытый вопрос один на один, который интервьюер задавал мне до этого . Я не ожидала, что он поделится со мной многими-многими способами. Я была очень тронута. Он был действительно сильным и могущественным. Он подробно рассказал мне, в каком направлении делать в будущем, как думать об этом, как это реализовать , и это заняло много времени в итоге.Время представить их отдел, действительно здорово!
- Введите URL-адрес отображения рендеринга страницы
- Как DNS разрешает
- Как преобразовать входное доменное имя в ip-адрес, а затем перейти на сервер
- принцип gzip
- cookie localStorage sessionStorage
- Существенная разница между куки и токенами (сеанс)
- Замыкания и их распространенные сценарии применения
- тайник
- Как хранить сильный кеш
- Как браузер получает такие параметры, как время истечения срока действия
- Как сервер устанавливает заголовок настроек кеша
- кэшированная сцена
- вызов применить разницу
- Механизм событий React
- virtual dom
- Преимущества крючков, почему они нравятся и часто используемые методы
- Реагировать на поток данных
- HOC, преимущества и как они обычно используются
- setState получает обновленное значение
- csrf и xss
- гибкая компоновка и, как обычно, совместимость
- Оптимизация производительности внешнего интерфейса (то, что вы использовали)
- История асинхронности узла (ответил async/await, генератор)
- процесс веб-пакета
- принцип webpack-dev-сервера
- элементы конфигурации веб-пакета и общие плагины
- Синтаксис ES6 и то, что вы обычно используете
- Принцип Mobx
- Блочная модель против странной блочной модели
- Структура HTTP-сообщения, что такое заголовки запросов и заголовки ответов
- Какие книги вы прочитали в последнее время, какие статьи прочитали и планируете сдавать вступительные экзамены в аспирантуру?
- стопка, очередь
- 100 000 чисел, чтобы найти наибольшее число K (описывает быструю сортировку, как ее реализовать, временную сложность, лучший, худший случай)
- DFS и BFS, как реализовать
- Разница между Мини-программами и H5, коммерческая и техническая (Мини-программы имеют собственный независимый механизм защиты, работают независимо в одном месте и не наносят вреда существующей экологии)
- Как настроить нгинкс
- Как настроить и разрешить Alibaba Cloud DNS (A? TXT?)
- Стрелочные функции и нормальные функции
- Монитор настройки кнопок использует функцию стрелки this, чтобы указать, где
- jwttoken
- Сервер запускает службу (nohup, pm2)
- Принцип составления Таро
- Преимущество машинописного текста, почему его хвалят
Али Клауд
- flex
- Адаптация мобильного терминала
- React hook
- Преимущество реакции
- Почему стоит выбрать Реакт
- Реагировать на поток данных
- В чем разница между односторонним потоком данных и двусторонней привязкой
- Введите URL-адрес страницы, чтобы показать, что произошло (сначала проверьте кеш или синтаксический анализ DNS)
- HTTP-код статуса
- тег git, какая команда обычно используется
- версия npm (a.b.c)
- функции веб-пакета
- В чем разница между webpackloader и плагином
- класс es6
- наследовать
- машинопись, парадигма
- async/await и обещание (соединение, разница)
- экспресс и коа
- Разница между промежуточным ПО
- Зачем использовать коа, экспресс не годится?
- для чего нужна база данных
- оператор sql (в чем разница между внешним соединением и внутренним соединением)
- N чисел, взять наибольшее число K, каков метод, временная сложность, пространственная сложность, использовать кучу
- Какую библиотеку с открытым исходным кодом вы использовали, она более популярна
- ускорить рендеринг
- Как получить время загрузки страницы
- Почему стоит выбрать Таро, преимущества Таро
- Как разработать плагин для веб-пакетов
- Как разработать компонент npm
Tencent (неправильно...)
Ах, внезапная смерть, в веб-интерфейсе официального веб-сайта инвестиций было отправлено письмо-приглашение
后台开发
, ах, хотя он очень рад, что его взяли, но у-у-у-у не ожидаемая почтовая утка! плакать