Алгоритмы — это основа программирования, определяющая, каким образом программное обеспечение будет использовать структуры данных.
Вы познакомитесь с базовыми аспектами построения алгоритмов, основными понятиями и определениями, структурами данных, затем перейдете к основным методам построения алгоритмов, неразрешимости и методам решения неразрешимых задач, и, наконец, изучите рандомизацию при проектировании алгоритмов.
👉 @frontendInterview
Вы познакомитесь с базовыми аспектами построения алгоритмов, основными понятиями и определениями, структурами данных, затем перейдете к основным методам построения алгоритмов, неразрешимости и методам решения неразрешимых задач, и, наконец, изучите рандомизацию при проектировании алгоритмов.
👉 @frontendInterview
Разница между максимальными длинами
Вам даны два массива строк. Вам нужно найти разницу между длинами самой длинной строки первого массива и самой длинной строки второго массива.
Пример:
Вам даны два массива строк. Вам нужно найти разницу между длинами самой длинной строки первого массива и самой длинной строки второго массива.
Пример:
a1 = ["hoqq", "bbllkw", "oox", "ejjuyyy", "plmiis", "xxxzgpsssa", "xxwwkktt", "znnnnfqknaz", "qqquuhii", "dvvvwz"]
a2 = ["cccooommaaqqoxii", "gggqaffhhh", "tttoowwwmmww"]
mxdiflg(a1, a2) --> 13Vue.js в действии
Vue.js – это популярная библиотека для создания пользовательских интерфейсов. В ней значительно переосмыслены реактивные идеи, впервые появившиеся в React.js.
Книга «Vue.js в действии» рассказывает о создании быстрых и эластичных пользовательских интерфейсов для Интернета. Освоив ее, вы напишете полноценное приложение для интернет-магазина, где будут присутствовать списки товаров, админка, а также организован полноценный процесс онлайнового заказа.
👉 @frontendInterview
Vue.js – это популярная библиотека для создания пользовательских интерфейсов. В ней значительно переосмыслены реактивные идеи, впервые появившиеся в React.js.
Книга «Vue.js в действии» рассказывает о создании быстрых и эластичных пользовательских интерфейсов для Интернета. Освоив ее, вы напишете полноценное приложение для интернет-магазина, где будут присутствовать списки товаров, админка, а также организован полноценный процесс онлайнового заказа.
👉 @frontendInterview
Объясните особенности проверки равенства значений в JavaScript
В JavaScript есть два оператора для проверки равенства величин. Первый — это так называемый оператор строгого равенства. Второй — оператор нестрогого равенства, при использовании которого может производиться преобразование типов проверяемых величин.
1. Оператор строгого равенства (===) проверяет значения на равенство, не выполняя при этом преобразования типов.
2. Оператор нестрогого равенства (==) проверяет значения на равенство, выполняя их приведение к общему типу.
1. Если любое из сравниваемых значений может быть значением true или false — постарайтесь избегать оператора ==. Используйте оператор ===.
2. Используйте оператор === в том случае, если работаете со следующими значениями: 0, «» или [] (пустой массив).
В JavaScript есть два оператора для проверки равенства величин. Первый — это так называемый оператор строгого равенства. Второй — оператор нестрогого равенства, при использовании которого может производиться преобразование типов проверяемых величин.
1. Оператор строгого равенства (===) проверяет значения на равенство, не выполняя при этом преобразования типов.
2. Оператор нестрогого равенства (==) проверяет значения на равенство, выполняя их приведение к общему типу.
var a = "42";Вот некоторые правила, касающиеся использования различных операторов проверки равенства в JavaScript:
var b = 42;
a == b; // true
a === b; // false
1. Если любое из сравниваемых значений может быть значением true или false — постарайтесь избегать оператора ==. Используйте оператор ===.
2. Используйте оператор === в том случае, если работаете со следующими значениями: 0, «» или [] (пустой массив).
Какая запись эквивалента записи flex: auto?
Anonymous Quiz
20%
flex: 1 0 auto
12%
flex: 0 1 auto
19%
flex: 0 0 0
25%
flex: 0 0 auto
24%
flex: 1 1 auto
Приведите примеры приведения к логическому типу значений, не относящихся к этому типу
Суть этого вопроса в том, чтобы выяснить, какие значения, в случае преобразования их к логическому типу, превращаются в false, а какие — в true.
Вот список значений, которые можно назвать «ложными» (falsy). Они, при преобразовании к логическому типу, превращаются в значение false:
1. «» (пустая строка).
2. 0, -0, NaN (не-число).
3. null, undefined.
«Ложным» является и логическое значение false.
Любое значение, которое не входит в этот список, при его преобразовании к логическому типу, превращается в true (такие значения называют «истинными» — truthy). Например:
1. «hello».
2. 42.
3. [ ], [ 1, «2», 3 ] (массивы).
4. { }, { a: 42 } (объекты).
5. function foo() { .. } (функции).
«Истинным» является и логическое значение true.
👉 @frontendInterview
Суть этого вопроса в том, чтобы выяснить, какие значения, в случае преобразования их к логическому типу, превращаются в false, а какие — в true.
Вот список значений, которые можно назвать «ложными» (falsy). Они, при преобразовании к логическому типу, превращаются в значение false:
1. «» (пустая строка).
2. 0, -0, NaN (не-число).
3. null, undefined.
«Ложным» является и логическое значение false.
Любое значение, которое не входит в этот список, при его преобразовании к логическому типу, превращается в true (такие значения называют «истинными» — truthy). Например:
1. «hello».
2. 42.
3. [ ], [ 1, «2», 3 ] (массивы).
4. { }, { a: 42 } (объекты).
5. function foo() { .. } (функции).
«Истинным» является и логическое значение true.
👉 @frontendInterview
This media is not supported in your browser
VIEW IN TELEGRAM
Современный фронтенд на нашем втором канале
17к фронтендеров уже читают его, подпишись и ты
👉 @seniorFront
17к фронтендеров уже читают его, подпишись и ты
👉 @seniorFront
Убрать первый и последний символ
Задача проста. Вам нужно написать функцию, которая принимает строку и убирает в ней первый и последний символ.
👉 @frontendInterview
Задача проста. Вам нужно написать функцию, которая принимает строку и убирает в ней первый и последний символ.
👉 @frontendInterview
Как задать стили к двум последним элементам li?
Anonymous Quiz
13%
li + li + li
55%
li:nth-child(n+2)
32%
li:nth-last-child(n+3)
Что такое IIFE?
IIFE (Immediately Invoked Function Expression) — это немедленно вызываемое функциональное выражение. Такое выражение выполняется немедленно после создания.
👉 @frontendInterview
IIFE (Immediately Invoked Function Expression) — это немедленно вызываемое функциональное выражение. Такое выражение выполняется немедленно после создания.
(function IIFE(){
console.log( "Hello!" );
})();
// "Hello!"
Этот паттерн часто используется для того чтобы не допустить загрязнения глобального пространства имён. Дело в том, что переменные, объявленные в IIFE (как и в любой другой обычной функции), невидимы за пределами этой функции.👉 @frontendInterview
Когда следует использовать стрелочные функции, которые появились в ES6?
Вот простые правила по использованию различных способов объявления функций, которыми я руководствуюсь, разрабатывая код для сред, поддерживающих стандарт ES6 и более новые стандарты:
1. Используйте ключевое слово function в глобальной области видимости и для свойств Object.prototype.
2. Используйте ключевое слово function для конструкторов объектов.
В остальных случаях используйте стрелочные функции.
Как видите, стрелочные функции рекомендуется использовать практически везде. У такого положения дел есть несколько причин:
1. Удобная работа с контекстом. Стрелочные функции используют значение this окружающего контекста, не имея собственного this. Если такие функции применяются последовательно, без использования обычных функций в сложных конструкциях, это обеспечивает безопасную работу с контекстом.
2. Компактность. Код стрелочных функций легче вводить и легче читать. Возможно, это преимущество стрелочных функций перед обычными покажется вам спорным и зависящим от точки зрения каждого конкретного разработчика.
3. Ясность кода. Если практически весь код представлен стрелочными функциями, любая обычная функция выделяется в таком коде тем, что создаёт собственный контекст. Применяя стрелочные функции, программист создаёт более понятный код, в котором легче, чем в коде без стрелочных функций, работать с this.
👉 @frontendInterview
Вот простые правила по использованию различных способов объявления функций, которыми я руководствуюсь, разрабатывая код для сред, поддерживающих стандарт ES6 и более новые стандарты:
1. Используйте ключевое слово function в глобальной области видимости и для свойств Object.prototype.
2. Используйте ключевое слово function для конструкторов объектов.
В остальных случаях используйте стрелочные функции.
Как видите, стрелочные функции рекомендуется использовать практически везде. У такого положения дел есть несколько причин:
1. Удобная работа с контекстом. Стрелочные функции используют значение this окружающего контекста, не имея собственного this. Если такие функции применяются последовательно, без использования обычных функций в сложных конструкциях, это обеспечивает безопасную работу с контекстом.
2. Компактность. Код стрелочных функций легче вводить и легче читать. Возможно, это преимущество стрелочных функций перед обычными покажется вам спорным и зависящим от точки зрения каждого конкретного разработчика.
3. Ясность кода. Если практически весь код представлен стрелочными функциями, любая обычная функция выделяется в таком коде тем, что создаёт собственный контекст. Применяя стрелочные функции, программист создаёт более понятный код, в котором легче, чем в коде без стрелочных функций, работать с this.
👉 @frontendInterview
В чём разница между ES6-классами и конструкторами функций?
Сначала рассмотрим примеры.
Функция-конструктор:
Основная разница между конструкторами и классами проявляется при использовании наследования. Если нам нужно создать класс Student, являющийся подклассом класса Person, и добавить к этому новому классу поле studentId, то вот как будет выглядеть код, в котором используются конструкторы, и код, в котором применяются классы.
Функция-конструктор:
👉 @frontendInterview
Сначала рассмотрим примеры.
Функция-конструктор:
function Person(name) {
this.name = name;
}
ES6-класс: class Person {
constructor(name) {
this.name = name;
}
}
Если речь идёт о создании простых объектов, то конструкторы и классы, используемые для этой цели, выглядят очень похоже.Основная разница между конструкторами и классами проявляется при использовании наследования. Если нам нужно создать класс Student, являющийся подклассом класса Person, и добавить к этому новому классу поле studentId, то вот как будет выглядеть код, в котором используются конструкторы, и код, в котором применяются классы.
Функция-конструктор:
function Student(name, studentId) {
// Вызываем конструктор суперкласса для инициализации полей, унаследованных от него.
Person.call(this, name);
// Инициализация собственных полей объекта.
this.studentId = studentId;
}
Student.prototype = Object.create(Person.prototype);
Student.prototype.constructor = Student;
ES6-класс: class Student extends Person {
constructor(name, studentId) {
super(name);
this.studentId = studentId;
}
}👉 @frontendInterview