#junior
Есть несколько слов. Нужно определить, состоят ли они из одних и тех же букв.
Например:
Есть несколько слов. Нужно определить, состоят ли они из одних и тех же букв.
Например:
[‘kot’, ‘tok’, ‘okt’]
Смотреть решение👍6
#junior #middle
Что будет выведено в консоль после выполнения кода выше, как можно модифицировать пример что бы он возвращал правильный результат(назовите как можно больше способов)?
Смотреть решение
Что будет выведено в консоль после выполнения кода выше, как можно модифицировать пример что бы он возвращал правильный результат(назовите как можно больше способов)?
Смотреть решение
👍4👎3
👍5🤔2👎1
Расскажите об одном из наиболее популярных паттернов для создания объектов в JavaScript и объясните, как он работает.
#middle
Одним из наиболее популярных паттернов для создания объектов в JavaScript является паттерн "Фабрика". Этот паттерн позволяет создавать объекты через функцию-конструктор, которая возвращает новый экземпляр объекта.
Например:
function createPerson(name, age) {
return {
name: name,
age: age
};
}
const person = createPerson('John', 30);
В этом примере функция createPerson является фабрикой, которая создает объекты типа "Person". Она принимает два параметра - name и age, которые используются для инициализации свойств объекта. Затем эти значения присваиваются свойствам name и age с помощью оператора :, и в конце функция возвращает созданный объект.
#middle
Например:
function createPerson(name, age) {
return {
name: name,
age: age
};
}
const person = createPerson('John', 30);
В этом примере функция createPerson является фабрикой, которая создает объекты типа "Person". Она принимает два параметра - name и age, которые используются для инициализации свойств объекта. Затем эти значения присваиваются свойствам name и age с помощью оператора :, и в конце функция возвращает созданный объект.
🤔4👍3
Какая функция из стандартной библиотеки JavaScript используется для поиска подстроки в строке?
Anonymous Quiz
38%
indexOf()
33%
find()
14%
search()
14%
match()
🤔5👍2
Какие методы и технологии вы используете для оптимизации производительности ваших JavaScript-приложений, и какие проблемы производительности вы встречали ранее и как их решали?
#middle
Один из способов ответить на этот вопрос может быть такой:
"Для оптимизации производительности моих JavaScript-приложений я использую различные методы и технологии. Например, я стараюсь избегать использования неоптимальных алгоритмов и структур данных, таких как линейный поиск в большом массиве. Я также регулярно использую инструменты профилирования кода, такие как инструменты в браузере, или утилиты командной строки, такие как jsperf, чтобы идентифицировать узкие места в моем коде."
#middle
"Для оптимизации производительности моих JavaScript-приложений я использую различные методы и технологии. Например, я стараюсь избегать использования неоптимальных алгоритмов и структур данных, таких как линейный поиск в большом массиве. Я также регулярно использую инструменты профилирования кода, такие как инструменты в браузере, или утилиты командной строки, такие как jsperf, чтобы идентифицировать узкие места в моем коде."
👍4🤔3
Какая из следующих JavaScript функций возвращает строку без гласных?
Anonymous Quiz
28%
function removeVowels(str) { return str.replace(/[aeiou]/g, ''); }
6%
function removeVowels(str) { return str.replace(/[AEIOU]/g, ''); }
44%
function removeVowels(str) { return str.replace(/[AEIOUaeiou]/g, ''); }
22%
function removeVowels(str) { return str.replace(/[^aeiou]/g, ''); }
👍5👎2
Опишите, как работает механизм сборки мусора в JavaScript и перечислите основные алгоритмы сборки мусора, которые вы знаете. Какие преимущества и недостатки имеет каждый из них? Какие методы можно использовать для оптимизации работы сборщика мусора в JavaScript-приложении?
#senior
Механизм сборки мусора (GC, Garbage Collection) в JavaScript отвечает за удаление неиспользуемых объектов из памяти. Он работает параллельно с выполнением кода и вызывается автоматически в определенные моменты.
Основные алгоритмы сборки мусора:
1. Сборка мусора с использованием списка живых объектов (Mark-and-Sweep): происходит пометка всех объектов, которые используются в данный момент, и удаление всех остальных. Этот алгоритм прост и не требует дополнительной памяти, но может привести к замедлению работы приложения во время сборки мусора.
2. Сборка мусора с использованием сборщика на основе ссылок (Reference Counting): каждый объект хранит счетчик ссылок на него, который увеличивается при каждой новой ссылке на этот объект и уменьшается при удалении ссылки. Объект удаляется, когда счетчик ссылок становится равен нулю. Этот алгоритм эффективен, но требует дополнительной памяти для хранения счетчиков ссылок.
3. Алгоритм сборки мусора с использованием полного поиска (Scavenging) представляет собой улучшенную версию алгоритма Mark-and-Sweep. Он используется в некоторых реализациях JavaScript-движков, таких как Spider Monkey и V8. При работе этого алгоритма память разбивается на две части: кучу (heap) и мусорную кучу (nursery). Куча содержит все объекты, которые могут быть удалены при сборке мусора, а мусорная куча - только те объекты, которые созданы во время последней сборки мусора. Во время сборки мусора объекты из мусорной кучи сначала переносятся в кучу, а затем помечаются как неиспользуемые. После этого происходит удаление непомеченных объектов из кучи.
#senior
Основные алгоритмы сборки мусора:
1. Сборка мусора с использованием списка живых объектов (Mark-and-Sweep): происходит пометка всех объектов, которые используются в данный момент, и удаление всех остальных. Этот алгоритм прост и не требует дополнительной памяти, но может привести к замедлению работы приложения во время сборки мусора.
2. Сборка мусора с использованием сборщика на основе ссылок (Reference Counting): каждый объект хранит счетчик ссылок на него, который увеличивается при каждой новой ссылке на этот объект и уменьшается при удалении ссылки. Объект удаляется, когда счетчик ссылок становится равен нулю. Этот алгоритм эффективен, но требует дополнительной памяти для хранения счетчиков ссылок.
3. Алгоритм сборки мусора с использованием полного поиска (Scavenging) представляет собой улучшенную версию алгоритма Mark-and-Sweep. Он используется в некоторых реализациях JavaScript-движков, таких как Spider Monkey и V8. При работе этого алгоритма память разбивается на две части: кучу (heap) и мусорную кучу (nursery). Куча содержит все объекты, которые могут быть удалены при сборке мусора, а мусорная куча - только те объекты, которые созданы во время последней сборки мусора. Во время сборки мусора объекты из мусорной кучи сначала переносятся в кучу, а затем помечаются как неиспользуемые. После этого происходит удаление непомеченных объектов из кучи.
👍6👎2
Какой метод из указанных ниже используется для добавления элемента в конец массива?
Anonymous Quiz
69%
push()
12%
splice()
8%
unshift()
12%
slice()
🤔4👍3
Какие из следующих методов массива изменяют сам массив?
Anonymous Quiz
42%
map()
6%
filter()
16%
reduce()
35%
splice()
🤔5👍2
Какой метод из указанных ниже может быть использован для создания нового массива, содержащего элементы из двух исходных массивов?
Anonymous Quiz
32%
concat()
29%
slice()
7%
splice()
32%
join()
🤔7
Что такое замыкания в JavaScript?
Anonymous Quiz
57%
Это функция, которая принимает другоую функцию, как аргумент и возвращает новую функцию
7%
Это функция, которая вызывается для создания нового объекта
29%
Это особенность языка, которая позволяет функции получать доступ к переменным из внешнего скоупа
7%
Это функция, которая вызывается при загрузке страницы
Выберите ответ на вопрос выше ⬆️
Anonymous Quiz
52%
'Hello, my name is Mike'
21%
'Hello, my name is John'
14%
undefined
14%
ReferenceError: great is not a function
👍5
В чем разница между == и === в JavaScript?
Anonymous Quiz
33%
== делает приведение типов, === не делает
12%
=== делает приведение типов, == не делает
12%
== сравнивает и типы и значения, === сравнивает только значения
42%
=== сравнивает и типы и значения, == сравнивает только значения
🤔5👎1
Какое из следующих утверждений о ключевом слове let правдиво?
Anonymous Quiz
9%
Переменные, объявленные с помощью let имеют функциональную область видимости (function-scoped)
41%
Переменные, объявленные с помощью let имеют блочную область видимости (block-scoped)
9%
Переменные, объявленные с помощью let имеют глобальную область видимости (globally-scoped)
41%
Переменные, обявленные с помощью let можно переобъявить с тем же самым именем внутри того же scope.
Какие из указанных ниже способов создания нового массива являются наиболее эффективными в терминах производительности?
Anonymous Quiz
18%
Использование метода slice() с нулевыми аргументами
25%
Использование метода concat()
21%
Создание нового массива с помощью цикла for и метода push()
36%
Создание нового массива с помощью спред-оператора (...)
Какие из указанных ниже вариантов являются правильными способами объявления функции в JavaScript?
Anonymous Quiz
31%
function foo() {}
13%
var foo = function() {}
10%
let foo = function() {}
10%
const foo = function() {}
0%
foo = function() {}
35%
Все варианты правильные
В чем разница между let и const в JavaScript?
Anonymous Quiz
22%
значения переменных, объявленных через let нельзя переопределять, объявленных через const — можно
78%
значения переменных, объявленных через const нельзя переопределять, объявленных через let — можно
0%
переменные let можно объявить только один раз, в то время как const можно объявлять несколько раз
0%
между let и const нет разницы