Сравнение строк
Напишите функцию, которая проверяет, может ли строка быть воссоздана с использованием символов двух других строк.
Первый параметр функции - создаваемая строка.
Второй и третий - используемые строки
Функция не должна быть чувствительна к регистрам, а также должна использовать все символы из строк.
Примеры:
Напишите функцию, которая проверяет, может ли строка быть воссоздана с использованием символов двух других строк.
Первый параметр функции - создаваемая строка.
Второй и третий - используемые строки
Функция не должна быть чувствительна к регистрам, а также должна использовать все символы из строк.
Примеры:
isMatching("email box", "b aIl", "Mo x e") return true
isMatching("bouh", "0b", "uh") return false
isMatching("kata", "kt", "aaa") return falseModern Full-Stack Development
React - один из самых популярных фреймворков веб-разработки, доступных сегодня, а Node.js чрезвычайно популярен для разработки на стороне сервера. Тот факт, что оба используют JavaScript, является хорошим аргументом в пользу их использования, но по мере того, как разработчики все больше используют этот язык, они начинают видеть и некоторые несовершенства; именно поэтому существует и быстро набирает популярность TypeScript. Добавьте к этому стеку Webpack и Docker, и вы получите мощный набор инструментов разработки, с которым можно создавать приложения. Работая с книгой, вы увидите, как эти инструменты действуют вместе и научитесь ими пользоваться.
React - один из самых популярных фреймворков веб-разработки, доступных сегодня, а Node.js чрезвычайно популярен для разработки на стороне сервера. Тот факт, что оба используют JavaScript, является хорошим аргументом в пользу их использования, но по мере того, как разработчики все больше используют этот язык, они начинают видеть и некоторые несовершенства; именно поэтому существует и быстро набирает популярность TypeScript. Добавьте к этому стеку Webpack и Docker, и вы получите мощный набор инструментов разработки, с которым можно создавать приложения. Работая с книгой, вы увидите, как эти инструменты действуют вместе и научитесь ими пользоваться.
Какое значение имеет this?
Обычно this ссылается на значение объекта, который в данный момент выполняет или вызывает функцию. «В данный момент» означает, что значение this меняется в зависимости от контекста выполнения, от того места, где мы используем this.
Добавим после console.log три строчки:
Обычно this ссылается на значение объекта, который в данный момент выполняет или вызывает функцию. «В данный момент» означает, что значение this меняется в зависимости от контекста выполнения, от того места, где мы используем this.
const carDetails = {
name: 'Ford Mustang',
yearBought: 2005,
getName() {
return this.name
}
isRegistered: true
}
console.log(carDetails.getName()) // Ford Mustang
В данном случае метод getName возвращает this.name, а this ссылается на carDetails, объект, в котором выполняется getName, который является ее «владельцем».Добавим после console.log три строчки:
var name = 'Ford Ranger'
var getCarName = carDetails.getName
console.log(getCarName()) // Ford Ranger
Второй console.log выдает Ford Ranger, и это странно. Причина такого поведения заключается в том, что «владельцем» getCarName является объект window. Переменные, объявленные с помощью ключевого слова «var» в глобальной области видимости, записываются в свойствКакое значение примет result?
Anonymous Quiz
7%
[95, 2009, 20009, 95]
11%
4
72%
[2009, 95, 95, 2009]
7%
false
3%
3
Что такое прототип объекта?
В двух словах, прототип — это план (схема или проект) объекта. Он используется как запасной вариант для свойств и методов, существующих в данном объекте. Это также один из способов обмена свойствами и функциональностью между объектами. Это основная концепция прототипного наследования в JS.
В двух словах, прототип — это план (схема или проект) объекта. Он используется как запасной вариант для свойств и методов, существующих в данном объекте. Это также один из способов обмена свойствами и функциональностью между объектами. Это основная концепция прототипного наследования в JS.
const o = {}
console.log(o.toString()) // [object Object]
Несмотря на то, что объект «о» не имеет свойства toString, обращение к этому свойству не вызывает ошибки. Если определенного свойства нет в объекте, его поиск осуществляется сначала в прототипе объекта, затем в прототипе прототипа объекта и так до тех пор, пока свойство не будет найдено. Это называется цепочкой прототипов. На вершине цепочки прототипов находится Object.prototype. console.log(o.toString === Object.prototype.toString) // trueУвидимся в следующем счастливом году
Вы прощаетесь со своим другом и говорите ему: "Увидимся в следующем счастливом году"
Счастливый год - число, состоящее из неповторяющихся символов.
Напишите функцию, которая принимает текущий год и возвращает следующий ближайший "счастливый год"
Примеры:
Вы прощаетесь со своим другом и говорите ему: "Увидимся в следующем счастливом году"
Счастливый год - число, состоящее из неповторяющихся символов.
Напишите функцию, которая принимает текущий год и возвращает следующий ближайший "счастливый год"
Примеры:
nextHappyYear (7712) ==> return (7801)
nextHappyYear (8989) ==> return (9012)
nextHappyYear (1001) ==> return (1023)Какой шрифт из перечисленных является шрифтом с засечками (serif)?
Anonymous Quiz
10%
Verdana
23%
Helvetica
18%
Arial
48%
Times
Что такое функциональное программирование и какие особенности JS позволяют говорить о нем как о функциональном языке программирования?
Функциональное программирование — это декларативная концепция программирования или образец (паттерн) того, как строятся приложения, как используются функции, содержащие выражения, которые вычисляют значения без изменения аргументов, которые им передаются.
Объект Array содержит методы map, filter и reduce, которые являются самыми известными функциями в мире функционального программирования из-за их полезности, а также потому, что они не изменяют массив, что делает эти функции «чистыми». Также в JS имеются замыкание и функции высшего порядка, которые являются характеристиками функционального языка программирования.
Функциональное программирование — это декларативная концепция программирования или образец (паттерн) того, как строятся приложения, как используются функции, содержащие выражения, которые вычисляют значения без изменения аргументов, которые им передаются.
Объект Array содержит методы map, filter и reduce, которые являются самыми известными функциями в мире функционального программирования из-за их полезности, а также потому, что они не изменяют массив, что делает эти функции «чистыми». Также в JS имеются замыкание и функции высшего порядка, которые являются характеристиками функционального языка программирования.
Что такое функции высшего порядка (Higher Order Functions)?
Функция высшего порядка — это функция, возвращающая другую функцию или принимающая другую функцию в качестве аргумента.
Предположим, у нас имеется массив чисел, и мы хотим создать новый массив, который содержит результаты умножения этих чисел на 2. Рассмотрим способы решения этой задачи с использованием функций высшего порядка и без них.
Решение задачи без использования функций высшего порядка:
Функция высшего порядка — это функция, возвращающая другую функцию или принимающая другую функцию в качестве аргумента.
Предположим, у нас имеется массив чисел, и мы хотим создать новый массив, который содержит результаты умножения этих чисел на 2. Рассмотрим способы решения этой задачи с использованием функций высшего порядка и без них.
Решение задачи без использования функций высшего порядка:
const arr1 = [1, 2, 3];Решение задачи с помощью функции высшего порядка map:
const arr2 = [];
for(let i = 0; i < arr1.length; i++) {
arr2.push(arr1[i] * 2);
}
// выводит [ 2, 4, 6 ]
console.log(arr2);
const arr1 = [1, 2, 3];
const arr2 = arr1.map(function(item) {
return item * 2;
});
console.log(arr2);Почему функции в JS называют объектами первого класса (First-class Objects)?
Функции называют объектами первого класса, потому что они обрабатываются также, как и любое другое значение в JS. Они могут присваиваться переменным, быть свойством объекта (методом), элементом массива, аргументом другой функции, значением, возвращаемым функцией. Единственным отличием функции от любого другого значения в JS является то, что функция может быть выполнена или вызвана.
Функции называют объектами первого класса, потому что они обрабатываются также, как и любое другое значение в JS. Они могут присваиваться переменным, быть свойством объекта (методом), элементом массива, аргументом другой функции, значением, возвращаемым функцией. Единственным отличием функции от любого другого значения в JS является то, что функция может быть выполнена или вызвана.
/* функция не имеет имени и находится в правой части команды присваивания переменной.*/
var dog = function(num) {
for (var i = 0; i < num; i++) {
alert("Woof");
}
};
dog(3); //Эту функцию можно вызвать через переменную dog.Макконнелл "Совершенный код"
Более 10 лет первое издание этой книги считалось одним из лучших практических руководств по программированию. Сейчас эта книга полностью обновлена с учетом современных тенденций и технологий и дополнена сотнями новых примеров, иллюстрирующих искусство и науку программирования. Опираясь на академические исследования, с одной стороны, и практический опыт коммерческих разработок ПО - с другой, автор синтезировал из самых эффективных методик и наиболее эффективных принципов ясное прагматичное руководство. Каков бы ни был ваш профессиональный уровень, с какими бы средствами разработками вы ни работали, какова бы ни была сложность вашего проекта, в этой книге вы найдете нужную информацию, она заставит вас размышлять и поможет создать совершенный код.
Более 10 лет первое издание этой книги считалось одним из лучших практических руководств по программированию. Сейчас эта книга полностью обновлена с учетом современных тенденций и технологий и дополнена сотнями новых примеров, иллюстрирующих искусство и науку программирования. Опираясь на академические исследования, с одной стороны, и практический опыт коммерческих разработок ПО - с другой, автор синтезировал из самых эффективных методик и наиболее эффективных принципов ясное прагматичное руководство. Каков бы ни был ваш профессиональный уровень, с какими бы средствами разработками вы ни работали, какова бы ни была сложность вашего проекта, в этой книге вы найдете нужную информацию, она заставит вас размышлять и поможет создать совершенный код.
Сумма двух массивов
Напишите функцию, которая принимает два массива и возвращает сумму из чисел этих массивов.
Особенность этой задачи в том, что прежде чем складывать массивы, нужно составить число из элементов массива.
Например [3,2,9] будет равно числу 329.
Примеры:
Напишите функцию, которая принимает два массива и возвращает сумму из чисел этих массивов.
Особенность этой задачи в том, что прежде чем складывать массивы, нужно составить число из элементов массива.
Например [3,2,9] будет равно числу 329.
Примеры:
[3,2,9],[1,2] --> [3,4,1]
[4,7,3],[1,2,3] --> [5,9,6]
[1],[5,7,6] --> [5,7,7]
Также, первый элемент массива может быть отрицательным: [3,2,6,6],[-7,2,2,8] --> [-3,9,6,2] # 3266 + (-7228) = -3962