Frontend Interview - собеседования по Javanoscript / Html / Css – Telegram
Frontend Interview - собеседования по Javanoscript / Html / Css
11.4K subscribers
2.1K photos
118 videos
319 files
530 links
Канал для подготовки к собеседованиям по фронтенду

Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront

Купить рекламу: https://telega.in/c/frontendinterview

Канал в реестре РКН:
https://rknn.link/su
Download Telegram
Разбить camelCase

Напишите функцию, которая будет разбивать строки в camelCase на отдельные слова.

Примеры:
"camelCasing" => "camel Casing"
"identifier" => "identifier"
"" => ""


👉 @frontendInterview
👍43
Что делает и для чего нужна функция `Function.prototype.bind`?

Метод bind() создаёт новую функцию, которая при вызове устанавливает в качестве контекста выполнения this предоставленное значение. В метод также передаётся набор аргументов, которые будут установлены перед переданными в привязанную функцию аргументами при её вызове.

👉 @frontendInterview
👍10
Какое значение примет result?
Anonymous Quiz
15%
ReferenceError
49%
262
19%
undefined
17%
2009
👍14😁5
Можете ли вы описать основное различие между циклом `.forEach` и циклом `.map()`?

Чтобы понять разницу между ними, давайте посмотрим, что делает каждая функция.

forEach
- Перебирает элементы в массиве.
- Вызывает callback-функцию для каждого элемента.
- Не возвращает значение.
 const a = [1, 2, 3];
const doubled = a.forEach((num, index) => {
// Делаем что-либо с num и/или index.
});
// doubled = undefined

map
- Перебирает элементы в массиве.
- “Сопоставляет” каждый элемент с новым элементом, вызывая функцию для каждого элемента, создавая в результате новый массив.
 const a = [1, 2, 3];
const doubled = a.map(num => {
return num * 2;
});
// doubled = [2, 4, 6]

Основное различие между .forEach и .map() состоит в том, что .map() возвращает новый массив. Если вам нужен результат, но вы не хотите изменять исходный массив, .map() — очевидный выбор. Если вам просто нужно перебрать массив, то стоит воспользоваться forEach.
👍26
Какое значение примет result?
Anonymous Quiz
26%
NaN
13%
undefined
7%
2
52%
6
2%
8
👍226
Можно ли стилизовать маркер у элемента списка в CSS?
Anonymous Quiz
94%
Да
6%
Нет
👍1
В каких случаях обычно используются анонимные функции?

Они могут использоваться в IIFE для инкапсуляции кода в локальную область видимости, чтобы объявленные в ней переменные не попадали в глобальную область видимости.
 (function() {
// Здесь код функции.
})();

Как callback-функция, которая используется один раз и не должна использоваться где-либо еще. Код будет казаться более автономным и читаемым, когда обработчики будут определены прямо внутри вызывающего их кода, а не искать в другом месте, чтобы найти тело функции.
 setTimeout(function() {
console.log('Hello world!');
}, 1000);

Аргументы в конструкциях функционального программирования или Lodash (аналогично callback-функциям).
const arr = [1, 2, 3];
const double = arr.map(function(el) {
return el * 2;
});
console.log(double); // [2, 4, 6]


👉 @frontendInterview
👍5
Не заставляйте меня думать. Веб-юзабилити и здравый смысл

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

👉 @frontendInterview
3👍2😁1🤔1
Не пейте воду

Вам дан двумерный массив, состоящий из различных жидкостей. Отсортируйте массив, исходя из плотности каждой жидкости. В задании дана таблица плотности.

======================
| Density Chart |
======================
| Honey | H | 1.36 |
| Water | W | 1.00 |
| Alcohol | A | 0.87 |
| Oil | O | 0.80 |
----------------------

[ [
['H', 'H', 'W', 'O'], ['O','O','O','O']
['W', 'W', 'O', 'W'], => ['W','W','W','W']
['H', 'H', 'O', 'O'] ['H','H','H','H']
] ]


👉 @frontendInterview
👍2
В чем разница между `==` и `===`?

== — это оператор абстрактного сравнения, а === — оператор строгого сравнения. Оператор == будет сравнивать на равенство после выполнения любых необходимых преобразований типов. Оператор === не будет выполнять преобразование типов, поэтому, если два значения не одного типа, === просто вернет false. При использовании == могут происходить такие странные вещи, как:
 1 == '1'; // true
1 == [1]; // true
1 == true; // true
0 == ''; // true
0 == '0'; // true
0 == false; // true

Мой совет — никогда не используйте оператор ==, за исключением удобного сравнения с null или undefined, где выражение a == null вернет true, если a принимает значение null или undefined .
var a = null;
console.log(a == null); // true
console.log(a == undefined); // true


👉 @frontendInterview
👍182👎2🥰1
Что выведется в консоль?
Anonymous Quiz
28%
SyntaxError
18%
undefined
51%
3
3%
null
👍141
Почему не следует расширять нативные JavaScript-объекты?

Расширение встроенного/нативного объекта JavaScript означает добавление свойств/функций к его прототипу. Хотя на первый взгляд это может показаться хорошей идеей, на практике это опасно. Представьте, что ваш код использует несколько библиотек, которые расширяют Array.prototype, добавляя один и тот же метод contains. В результате код будет работать неверно, если поведение этих двух методов не будет одинаковым.

Единственный случай, при котором можно расширить нативный объект — это при создании полифила, создав собственную реализацию метода, который является частью спецификации JavaScript, но может отсутствовать в устаревших браузерах.

👉 @frontendInterview
👍12🔥1
Что выведется в консоль?
Anonymous Quiz
16%
true true
8%
true false
19%
false false
56%
false true
👍9😁21