Недавно я отправился в давно потерянное интервью, и я чувствую, что чувство золота, серебра и серебра все еще существует. Итак, я хочу поделиться с вами несколькими компаниями, с которыми я недавно беседовал.Хотя они не являются фабриками первого уровня, заданные вопросы имеют много общего.После их разбора у меня появляется большая уверенность в фронтенд-интервью. Я посчитал, что было бы немного неуважительно публиковать название компании напрямую, поэтому я временно скрыл его. Вопросы видео-интервью я записал сразу после интервью, а вопросы телефонного интервью разбирал постепенно по записи. Надеюсь помочь вам.
первая компания
- Количество участников социального обеспечения: 737
- Отрасль компании: программное обеспечение и услуги в области информационных технологий
1. Что вы делали с vue?
Здесь очень запутанно, и проблема относительно велика. Позже, после общения, я узнал, что интервьюер хотел спросить вас, какие функции вы реализовали с помощью vue в последнее время, а затем задать дополнительные вопросы на основе вашего ответа.
2. Что делают JSON.stringify() и JSON.parse(), сколько там параметров?
JSON.stringify:有三个参数,第二个参数是对内容进行处理,第三个参数是设置缩进的值
str_pretty2 = JSON.stringify(str, null, 4)
JSON.parse():有两个参数,JSON.parse(text[, reviver])
JSON.parse('{"p": 5}', function (k, v) {
if(k === '') return v; // 如果到了最顶层,则直接返回属性值,
return v * 2; // 否则将属性值变为原来的 2 倍。
}); // { p: 10 }
3. Как реализовать глубокую копию?
Обратитесь к ссылке ниже, в основном, чтобы прояснить простые идеи. Рекомендуется сначала разобраться с простыми идеями самостоятельно, иначе будет очень грязно.реализация глубокого копирования
4. Каковы связанные интерфейсы веб-сокета?
new Websocket('')
this.ws.onopen = ()=>{}
this.ws.onclose = ()=>{}
this.ws.onmessage = ()=>{}
this.ws.onerror = ()=>{}
5. Какие API для массивов вы знаете?
包括下一个答案的内容,还有pop、push、shift、unshift、slice、splice、reverse
6. Помимо for of, какие еще существуют методы для перебора массива?
1.for循环
2.forEach循环
3.map循环
4.for of循环
5.filter循环
6.every遍历
7.some遍历
8.reduce累加器
9.reduceRight从末位计算的累加器
10.find
11.findIndex
12.keys、values、entries
13.while
7. Как отфильтровать следующие данные?
arr: [
{
key: '01',
value: '西施'
}, {
key: '02',
value: '王昭君'
}, {
key: '03',
value: '杨玉环'
}, {
key: '04',
value: '貂蝉'
}, {
key: '01',
value: '西施'
}, {
key: '01',
value: '西施'
}
],
};
let finalResult = []
let attr = {}
for(let item of this.arr){
if(!attr[item.key]){
finalResult.push(item)
attr[item.key]=true
}
}
8. Какие API, вы знаете, использует ES6?
略。一般你说什么就会更深入地问你。
9. Каковы сценарии использования Promise и Async?
Promise和async/await常用的就是用来优化多重异步和异步嵌套,防止回调地狱。
加载文件、图片,接口需要先后顺序调用等。
10. Как сделать так, чтобы один из первых двух интерфейсов возвращался и сразу же вызывал следующий интерфейс?
Promise.race
const p = Promise.race([
fetch('/resource-that-may-take-a-while'),
new Promise(function (resolve, reject) {
fetch('/resource-that-may-take-a-while2')
})
]);
p
.then(console.log)
.catch(console.error);
11. Что делать, если одновременно вызывается пять интерфейсов?
const p = Promise.all([p1, p2, p3, p4, p5]);
12. Как vue routing перехватывает навигацию?
13. Каковы методы связи компонентов vue? Как обычно взаимодействуют кросс-компоненты?
Шесть способов общенияВ основном не имеют полного ответа на них, общего понимания, как.
14. Каковы общие сценарии использования vuex?
Vuex — это инструмент управления состоянием, специально созданный для Vue, который в основном решает проблему многокомпонентного совместного использования состояния. Акцент делается на централизованное управление.
Распространенные сценарии: обмен данными о корзинах, вход и регистрация.
15. Как вы обычно используете жизненный цикл уничтожения vue? Как восстановить память?
beforeCreated обычно используется для записи загрузки
created обычно используется для запроса данных, а загрузку можно убрать
После установки операции, связанной с домом, дом только после завершения анализа, потому что смонтирован только триггер События beforeDestroy обычно используются при удалении некоторых компонентов таймера, связанных
Отзыв памяти:
removeEventListener используется для удаления событий
ClearTimeOut и ClearInterval используются для удаления таймера.
16. Как динамически загружать компоненты?
17. Как чистый внешний интерфейс управляет разрешениями? Какой метод вы используете для разрешений управления проектом?
Ссылка на ссылку. Я чувствую, что ответ, вероятно, заключается в том, чтобы сотрудничать с бэкэндом, и это почти то же самое, что сотрудничать с перехватом навигации в vue-router.
18. Как следующее назначение структуры данных получает вторые данные строки?
const node = {
loc: {
start: {
line: [1,2,3],
column: 5
}
}
};
let { loc: { start: {line:[,num]}} } = node;
19. Как webpack настраивает загрузчик для просмотра только некоторых файлов?
Ссылка на ссылку. Включение в загрузчик конфигурации устанавливает область обхода.
20. Как webpack устанавливает псевдонимы?
vuecli3.0里面在vue.config.js的文件里配置。
module.exports={
chainWebpack:(config)=>{
config.resolve.alias
.set('@',resolve('./src'))
//set第一个参数:设置的别名,第二个参数:设置的路径
}
}
纯webpack的话,可参考:https://www.cnblogs.com/Jimc/p/10282969.html。
21. Какой язык вы используете в своем бэкэнде? Как упакован ваш проект? Он упакован с бэкэндом?
немного
22. Есть ли у вас знания об оптимизации разных версий браузеров? Например, оптимизировать текущий проект под конкретную версию IE?
Я мало что знаю об этом, я знаю только, что ведро семейства vue преобразует es6 и выше в es5, читаемый с помощью babel.
23. Для чего используется инструмент управления версиями?
немного
24. Читали ли вы какие-нибудь книги в последнее время?
немного
25. Что еще вы хотите спросить?
немного
вторая компания
- Количество участников социального обеспечения: около 200
- Отрасль компании: индустрия образования
1. Как flex обеспечивает горизонтальное и вертикальное центрирование? Что такое API для смены шпинделя?
justify-content属性定义了项目在主轴上的对齐方式。
.box {
justify-content: flex-start | flex-end | center | space-between | space-around;
}
align-items属性定义项目在交叉轴上如何对齐。
.box {
align-items: flex-start | flex-end | center | baseline | stretch;
}
主轴的方向
flex-direction: row | row-reverse | column | column-reverse;
2. Как переопределить собственный стиль элемента?
一、深度作用选择器( >>> )
<style scoped>
.box >>> .content {
font-size:20px;
}
</style>
二、/deep/ 预处理器less下使用
深度选择器/deep/与>>>作用相同
通过 >>> 可以使得在使用scoped属性的情况下,穿透scoped,修改其他组件的值
<style scoped lang="less">
.select {
/deep/ .ivu-card-body {
width: 100%;
}
}
</style>
3. Как сделать несколько элементов на расстоянии 20 пикселей друг от друга, но первый элемент останется прежним?
div:not(:first-child){
display:inline-block;
margin-left:20px;
}
4. Роль часов в vue, есть ли еще параметры?
Наблюдайте за выражением в экземпляре VueИли изменение результата вычисления функции.
deep: true, чтобы найти изменения во внутреннем значении объекта
немедленно: true , обратный вызов будет запущен немедленно с текущим значением выражения
5. Какова роль вычислений? В чем разница между вычислением и прямым использованием функции для вычисления атрибута?
Вычисляемое свойство предназначено для вычисления значения свойства и отслеживания исходного значения. вычисленные кэшируются на основе их реактивных зависимостей. Они переоцениваются только при изменении соответствующих реактивных зависимостей. Если функция выполняет вычисления и отображение, функция будет выполняться повторно каждый раз при обновлении визуализации.
6. Знаете ли вы какой-либо способ перебора массива?
不重复回答。略
7. В чем разница между forEach и циклом for?
Циклы for можно прервать, но forEach нельзя.
8. В чем разница между глубокой копией и поверхностной копией? Каков конкретный метод реализации?
浅拷贝:值的拷贝。
[...a],concat()
深拷贝:将具有地址的值拷贝至另外一个地址。
对象只有一层的话可以直接用Object.assign实现深拷贝。
9. Что не так с реализацией глубокого копирования с помощью JSON.stringify и JSON.parse?
1、如果obj里面有时间对象,则JSON.stringify后再JSON.parse的结果,时间将只是字符串的形式。而不是时间对象;
2、如果obj里有RegExp、Error对象,则序列化的结果将只得到空对象;
3、如果obj里有函数,undefined,则序列化的结果会把函数或 undefined丢失;
4、如果obj里有NaN、Infinity和-Infinity,则序列化的结果会变成null;
5、JSON.stringify()只能序列化对象的可枚举的自有属性,例如:如果obj中的对象是有构造函数生成的,则使用JSON.parse(JSON.stringify(obj))深拷贝后,会丢弃对象的constructor;
10. В чем разница между let и var? Используйте console.log, чтобы напечатать переменную вне функции, прежде чем позволить, каков будет эффект?
var tmp = 123;
if (true) {
tmp = 'abc'; // ReferenceError
let tmp;
}
VM34:4 Uncaught ReferenceError: Cannot access 'tmp' before initialization
at <anonymous>:4:7
11. Каковы последствия поднятия функций и переменных?
函数会被提升至最顶端。
1.
var tmp = 123;
function tmp (){}
console.log(tmp) ///123
2.
function tmp (){}
console.log(tmp)
var tmp = 123; /// f tmp() {}
函数提升要比变量提升的优先级要高一些,且不会被变量声明覆盖,但是会被变量赋值之后覆盖。
12. В чем разница между «равным» и «конгруэнтным»? Как сделать преобразование типов?
当进行双等号比较时候:
先检查两个操作数数据类型,
如果相同,则进行===比较,
如果不同,则愿意为你进行一次类型转换,转换成相同类型后再进行比较,
而===比较时, 如果类型不同,直接就是false.
如果已经是原始类型了,那就不需要转换了
如果需要转字符串类型就调用 x.toString(),转换为基础类型的话就返回转换的值。不是字符串类型的话就先调用 valueOf,结果不是基础类型的话再调用 toString
调用 x.valueOf(),如果转换为基础类型,就返回转换的值
如果都没有返回原始类型,就会报错
13. Как реализовано внутреннее промис? Как реализовать связанные вызовы .then?
Экземпляры Promise имеют метод then, то есть метод then определен в объекте-прототипе Promise.prototype. Метод then возвращает новый экземпляр Promise. Следовательно, можно использовать метод цепочки, то есть после метода then вызывается другой метод then.
14. Какова область действия блока?
- для цикла
- Кудрявые скобки для если
- внутри функции
15. Какова функция функции стрелки?
Одним из применений стрелочных функций является упрощение функций обратного вызова.
Есть несколько предостережений по использованию стрелочных функций.
(1) Объект this в теле функции — это объект, в котором он определен, а не объект, в котором он используется.
(2) Его нельзя использовать как конструктор, то есть нельзя использовать новую команду, иначе будет выброшена ошибка.
(3) Вы не можете использовать объект arguments, которого нет в теле функции. Если вы хотите использовать его, вы можете вместо этого использовать остальные параметры.
(4) Команду yield нельзя использовать, поэтому стрелочные функции нельзя использовать в качестве функций генератора.
16. Как подтвердить логин?
17. Что делать, если адреса серверов онлайн-среды и тестовой среды отличаются для бэкэнд-пакетов?
третья компания
- Количество участников социального обеспечения: 5000+
- Отрасль компании: общая промышленность
1. Пожалуйста, напишите два метода для реализации оценки Фибоначчи с помощью рекурсии и цикла: f(n)=f(n-1)+f(n-2), после того как функция должна ввести любое натуральное число n , которое возвращает число Фибоначчи. число этого натурального числа.
Рекурсивный:
function f(n){
if(n<=1){
return n
}
return f(n-1)=f(n-2)
}
цикл:
function f(n){
if (n <= 1) return n;
let first = 0;
let second = 1;
let result = 0;
for (let i = 2; i <= n; i++)
{
result = first + second;
first = second;
second = result;
}
return result;
}
2. Код для реализации следующей функции sum(1)(2)()=3 sum(1)(2)(3)()=6 sum(2)=2 sum()=0
function sum() {
let args = [...arguments];
return function () {
let inargs = [...arguments];
if (arguments.length === 0) {
let me = 0;
for (let num of args) {
me += num;
}
return me;
}
else
return sum.apply(this, args.concat(inargs))
};
}
3. С помощью программы реализовать входное выражение x = "1 2 + 2 + 5 4 + -" и вывести результат выполнения выражения. В обратном польском языке оператор ставится после операнда. Например, выражая «три плюс четыре», напишите «3 4 +» вместо «3+4».
function calc(expr) {
if (!expr) return 0;
let arr = expr.split(' ')
let elems = []
let item;
while (item = arr.shift()) {
if (!isNaN(+item)) {
elems.push(+item)
} else {
var res = count(item, elems.pop(), elems.pop())
elems.push(res)
}
}
function count (opera, num1, num2) {
switch (opera) {
case '+':
return num2 + num1
case '-':
return num2 - num1
}
}
return elems.pop()
}
4. Реализуйте компонент React
// + состоит из двух частей, верхнее поле ввода, список имен ниже, могут использоваться и компоненты, не могут быть разными, если достигнуты ввод и собственный ul li. При вводе на вход, в режиме реального времени фильтрация списка данных. Если не ввести, отобразить весь список. @+] Соответственно, в пропсе есть атрибут name компонента для получения имён. Это массив строк. Например ['Чжан Сан', 'Ли Си', 'Ван Ву', 'Чжао Лю']. Когда мы вводим букву а, в дополнение к «Li Si» будут отфильтрованы. Потому что они содержат букву а.
import React, { Component } from 'react';
import { Input, List } from 'antd';
const { Search } = Input;
class trash extends Component {
constructor(props) {
super(props);
this.state = {
listData: []
};
this.originData = []
this.changeInput = this.changeInput.bind(this);
}
componentDidMount() {
this.setState({
listData: this.props.names
});
this.originData = this.props.names
}
componentDidUpdate(prevProps){
if(prevProps.names!==this.props.names){
this.setState({
listData: this.props.names
});
this.originData = this.props.names
}
}
changeInput(e) {
let restData = this.originData.filter(item=>{
return !item.includes(e.target.value)||!e.target.value
})
this.setState({
listData: restData
})
}
render() {
const { listData } = this.state
return (
<div>
<Search
placeholder="请搜索你要的名字"
onChange={this.changeInput}
style={{ width: 200 }}
/>
<List
bordered
dataSource={listData}
renderItem={item => (
<List.Item>
{item}
</List.Item>
)}
/>
</div>
);
}
}
export default trash;
5. Поняла ли вышестоящая функция? Что это для использования?
Функция, которая принимает другую функцию в качестве аргумента, называется функцией высшего порядка. Например, forEach, map и т. д.
6. В чем разница между рекурсией и циклом? Для решения каких проблем обычно используется рекурсия?
Рекурсивный алгоритм:
Достоинства: Код лаконичный, понятный, правильность проверки легко проверить.
недостаток: 1. Для его работы требуется большое количество вызовов функций, при относительно большом количестве слоев вызовов каждый раз необходимо создавать новые переменные и добавлять дополнительную обработку стека, что будет иметь определенное влияние на эффективность выполнения и занимают слишком много ресурсов памяти. 2. Эффективность работы рекурсивного алгоритма решения задачи низкая. В процессе рекурсивного вызова система открывает стек для хранения точек возврата, локальных переменных и т. д. каждого уровня. Слишком большая рекурсия может легко вызвать переполнение стека и т. д.
Алгоритм цикла:
Преимущества: быстрая скорость и простая структура.
Недостатки: Не все проблемы можно решить. Некоторые задачи подходят для рекурсии, а не для цикла. Если использовать петлю не сложно, лучше использовать петлю
7. Каков жизненный цикл реакции?
8. Как добиться горизонтального и вертикального центрирования flex? Как сделать так, чтобы два содержимого разной высоты стали одинаковой высоты?
水平居中:
justify-content:center;
垂直居中:
align-items:center;
让两个内容变得等高:
align-items:stretch;
9. Объясните, что означает цепочка прототипов? Какова связь между классом и цепочкой прототипов в ES6?
При обращении к свойствам объекта сначала ищите его в базовых свойствах, если нет, то идите вверх по цепочке __proto__, которая является цепочкой прототипов.Ссылка на ссылку.
Класс может реализовать наследование с помощью ключевого слова extends, что намного понятнее и удобнее, чем реализация наследования в ES5 путем изменения цепочки прототипов.
10. В чем смысл функции стрелки? Куда это указывает?
Ответил выше.
11. Что вы считаете наиболее интересным в своей работе?
немного
12. Если есть проблема с онлайн-средой, каков текущий процесс вашего проекта?
1. Узнайте, где находится ошибка, и найдите соответствующий журнал ошибок. 2. Найдите неправильный код и исправьте его 3. Сливаем код в релизную ветку, тест проходит 4. После прохождения слить код в мастер и выйти в интернет. (Предпосылка состоит в том, чтобы убедиться, что все в порядке, в том числе, повлияют ли данные, сгенерированные ошибкой, на онлайн и т. д.)
13. Можно ли читать документы на английском языке?
немного14. Каково ваше будущее направление фронтенд-разработки?
немного
четвертая рота
- Количество участников социального страхования: 1000+
- Отрасль компании: программное обеспечение и услуги в области информационных технологий
1. Как решить проблему слишком медленной обработки большого объема данных интерфейсом?
Оптимизируйте алгоритм, поместите его на сервер для обработки или используйте веб-воркер
2. Вы когда-нибудь делали адаптивный макет? Каков конкретный метод реализации?
3. минимальная высота и ! Что вступит в силу, если в то же время будет установлено важное значение?
min-height会先生效,覆盖掉!important
4. Что такое перерисовка и перекомпоновка? Что повлечет за собой перекраску? Что может вызвать рефлюкс?
Когда часть (или все) дерева рендеринга необходимо перестроить из-за изменения размера, компоновки, скрытия и т. д. элементов. Это называется обратным потоком
Это не повлияет на макет, например, на фоновый цвет. Это называется называется перерисовать.Оплавление неизбежно вызовет перерисовку, а перерисовка не обязательно приведет к оплавлению.Ссылка на ссылку
5. В чем разница между js и css для анимационных эффектов?
CSS-анимация преимущество:
(1) Браузеры могут оптимизировать анимацию.
1. Браузер использует механизм, аналогичный requestAnimationFrame.Преимущества requestAnimationFrame по сравнению с setTimeout и setInterval для настройки анимации: 1) requestAnimationFrame соберет все DOM-операции в каждом кадре и завершит их за одну перерисовку или перекомпоновку, а перерисовка или перекомпоновка интервал точно соответствует частоте обновления браузера, которая обычно составляет 60 кадров в секунду. 2) requestAnimationFrame не перерисовывает и не перекомпоновывает скрытые или невидимые элементы, что, конечно, означает меньшее использование процессора, графического процессора и памяти.
2. Принудительное аппаратное ускорение (улучшение производительности анимации с помощью графического процессора).
(2) Код относительно прост, и направление настройки производительности фиксировано.
(3) Для низкоуровневых браузеров с низкой производительностью по частоте кадров CSS3 может естественным образом деградировать, в то время как JS требует написания дополнительного кода.
JS-анимация
(1) Возможности управления анимацией JavaScript очень сильны, он может управлять анимацией во время процесса воспроизведения анимации: запуск, пауза, воспроизведение, завершение, отмена могут быть выполнены.
(2) Анимационные эффекты богаче, чем анимация CSS3.Некоторые анимационные эффекты, такие как кривое движение, мерцание ударов и эффекты прокрутки параллакса, могут быть завершены только анимацией JavaScript.
(3) CSS3 имеет проблемы с совместимостью, в то время как JS большую часть времени не имеет проблем с совместимостью.
недостаток:
(1) JavaScript выполняется в основном потоке браузера, и в основном потоке необходимо выполнять другие сценарии JavaScript, расчеты стилей, макеты, задачи рисования и т. д. Вмешательство в него может привести к блокировке потока; что приводит к потере кадров.
(2) Сложность кода выше, чем у CSS-анимации.
6. Каковы основные типы js?
基本类型:
String、
Number、
Null、
Undefined、
Boolean、
Symbol、
BigInt
7. Какая версия bigInt вышла? Вы использовали его на работе?
es10
8. В чем разница между let и var для объявления переменных? Переменные, объявленные var, могут быть прочитаны окном, так может ли? Зачем
var поднят, и мы можем использовать его перед объявлением. let, const нельзя использовать перед объявлением из-за временной мертвой зоны var Объявление переменной в глобальной области приведет к тому, что переменная будет смонтирована в окне, две другие не будут
let не будет монтироваться в окне, и он действителен в блоке кода, где находится команда let.
9. В чем разница между const и let? Можно ли изменить содержимое объекта, объявленного const, после его установки?
const объявляет константу только для чтения. После объявления значение константы не может быть изменено. Область действия const такая же, как и у команды let: она действительна только в области блочного уровня, в которой она объявлена. Заявленная константа тоже не продвигается, а также есть временная мертвая зона, которую можно использовать только после заявленной позиции.
10. В чем разница между хранением ссылочных типов и примитивных типов?
Значения данных примитивных типов хранятся непосредственно в «стеке», а значения ссылочных типов хранятся в «куче»
11. Объясните, что означает закрытие?
Согласно правилам лексической области видимости, внутренняя функция всегда может получить доступ к переменным, объявленным во внешней функции.Когда внутренняя функция возвращается вызовом внешней функции, даже если внешняя функция была выполнена, внутренняя функция ссылается на переменные внешней функции.Оставаясь в памяти, мы называем набор этих переменных замыканием.
12. Как работает механизм сборки мусора js?
Если стек выталкивается, функция возвращается после выполнения, а ESP перемещается вниз и освобождается.
Куча слов: В V8 куча разделена на две области: новое поколение и старое поколение.Новое поколение хранит объекты с коротким сроком жизни, а старое поколение хранит объекты с большим сроком жизни.
- Вторичный сборщик мусора в основном отвечает за сборку мусора нового поколения: для обработки используется алгоритм Scavenge. Так называемый алгоритм Scavenge заключается в том, чтобы разделить пространство новой генерации на две области пополам, одна половина — это область объекта, а другая половина — свободная область. ...
- Главный сборщик мусора, в основном отвечающий за сбор мусора старого поколения.
13. Каков метод перебора массива?
Не повторяйте ответ. немного
14. Может ли цикл for of зацикливаться на объектах? Может for в цикле над массивом?
Цикл for of не может перебирать объекты. Считается, что структура данных имеет интерфейс итератора, пока развернуто свойство Symbol.iterator, а его элементы можно обходить с помощью цикла for...of. Объект не имеет Symbol.iterator. Может ли цикл for in зацикливаться на массиве? Да, только ключ можно получить.
15. Какое значение возвращает параметр цикла for in?
Для in получает значение ключа.
16. Какое значение возвращает карта? Для чего это?
map возвращает обработанный массив
17. Можно ли прервать цикл карты?
Цикл карты не может быть прерван, и разрыв не может быть установлен
18. Какое значение возвращает функция forEach?
返回undefined
19. Какие методы массивы должны повторно использовать? Как убрать вес чистого числа?
ситуация. новый набор (массив) может быть дедуплицирован.
20. Какова общая идея реализации глубокого копирования? Зачем копировать объекты при использовании рекурсии?
21. Если один и тот же объект вложен в объект, образуя петлю, как решить эту проблему?
22. Какова роль и разница между применением и вызовом?
Оба значения указываются при запуске функции fun, разница fun.call(thisArg, arg1, arg2, ...) fun.apply(thisArg, [argsArray]) apply помещает параметры функции во второй параметр и передает его в виде массива, а вызов передается параметр за параметром.
23. В чем разница между функцией стрелки и нормальной функцией? Есть ли у стрелочных функций аргументы?
Не повторяйте ответ. немного.
24. Можно ли использовать стрелочные функции в качестве конструкторов?
Не можем. Потому что это уже связано при создании функции стрелки.
25. Какие еще существуют методы реализации наследования функций?
26. Как реализовано наследование цепочки прототипов или наследование конструктора?
То же
27. Как наследуется заводской код?
То же
28. Как используется Object.DefinedProperty?
Метод Object.defineProperty() определяет новое свойство непосредственно в объекте или изменяет существующее свойство объекта и возвращает объект.Ссылка на ссылку
29. Что vue3.x использует для замены Object.DefinedProperty для мониторинга данных и каковы преимущества прокси?
30. Знаете ли вы общие методы прокси?
31. Каковы сценарии использования карты и набора?
Карта подходит для хранения пар ключ-значение данных Set не сохраняет повторяющиеся элементы, эффективность извлечения элементов низкая, а эффективность удаления и вставки высокая.
32. Какие вообще бывают типы ключевых значений объектов?
Строка, Символ
33. Вы понимаете сценарии weakSet и weakMap?Вообще говоря, значением ключа карты также может быть объект, так зачем использовать weakMap?
Структура WeakSet похожа на Set, это тоже набор уникальных значений. Однако он отличается от Set двумя способами:
Во-первых, членами WeakSet могут быть только объекты, а не другие типы значений.
Во-вторых, все объекты в WeakSet являются слабыми ссылками, то есть механизм сборки мусора не рассматривает ссылку на объект в WeakSet.
Подобно структуре Map, структура WeakMap также используется для создания набора пар ключ-значение.
Объект, на который указывает имя ключа WeakMap, не включается в механизм сборки мусора. Ручное удаление требуется, когда не используется.
Есть два основных различия между WeakMap и Map в API:
Во-первых, нет операции обхода (то есть нет методов keys(), values() и entry(), а также атрибута размера).
Во-вторых, его нельзя очистить, то есть метод очистки не поддерживается.
34. Что такое концепция декоратора es6?Что такое концепция итератора?
Декораторы не реализованы. Декоратор — это связанный с классом синтаксис, используемый для аннотирования или изменения классов и методов класса.
Итераторы — один из таких механизмов. Это интерфейс, обеспечивающий унифицированный механизм доступа к множеству различных структур данных. Любую структуру данных можно обойти, развернув интерфейс Iterator (то есть обработав по очереди все члены структуры данных).
Какой механизм петли событий 35. браузер?
36. Что такое типичная микрозадача? А макрозадача? Кто выполняет первым?
То же
37. Какие есть режимы маршрутизации vueRouter и каков принцип реализации каждого режима?
Настройте режим маршрутизации:
hash: Используйте хеш-значение URL-адреса для маршрутизации. Поддерживаются все браузеры, включая те, которые не поддерживают API истории HTML5.
история: зависит от HTML5 History API и конфигурации сервера. Проверьте режим истории HTML5.
Аннотация: поддерживает все среды выполнения JavaScript, такие как серверная часть Node.js. Если браузер не найден. API, маршруты автоматически переводятся в этот режим.Основная ссылка:nuggets.capable/post/684490…
38. Как отслеживать изменения маршрутизации хэша?
39. Как возникает междоменная проблема Какие конкретные интерфейсы могут генерировать междоменные?
40. Как решать междоменные проблемы?Как реализована конкретная базовая реализация?
То же
41. Для чего используется Jsonp?
42. Как работает кеш браузера, когда код состояния Http вернет 304?
43. Каково общее понимание веб-пакета?
немного
44. Использовался ли в проекте typeScript?
немного
текущее резюме
Основные вопросы с одной стороны относительно часты, и до сих пор встречались следующие:
- Как добиться междоменного
- операции с массивами
- Как реализовать глубокую копию
Если у вас есть еще опыт интервью, я поделюсь им с вами~ Если у вас есть какие-либо вопросы, пожалуйста, поправьте меня~ Кстати, поставьте лайк, ха-ха.