From 6ca87aefb0bda135ed7ea8e07c78235477309b99 Mon Sep 17 00:00:00 2001 From: Nikolay Date: Sat, 6 Dec 2025 15:01:20 +0300 Subject: [PATCH] Day 07 (Translation Into Russian) --- RU/07_Day/07_day_functions.md | 745 ++++++++++++++++++++++++++++++++++ 1 file changed, 745 insertions(+) create mode 100644 RU/07_Day/07_day_functions.md diff --git a/RU/07_Day/07_day_functions.md b/RU/07_Day/07_day_functions.md new file mode 100644 index 000000000..6dbbab97e --- /dev/null +++ b/RU/07_Day/07_day_functions.md @@ -0,0 +1,745 @@ +
+

30 Days Of JavaScript

+ + + + + Twitter Follow + + + Автор: + Asabeneh Yetayeh
+ Январь, 2020 +
+
+ +[<< День 6](../06_Day_Loops/06_day_loops.md) | [День 8 >>](../08_Day_Objects/08_day_objects.md) + +![Thirty Days Of JavaScript](../images/banners/day_1_7.png) + +- [📔 День 7](#-день-7) + - [Функции](#функции) + - [Function Declaration](#function-declaration) + - [Функции без параметров и ключевого слова return](#функции-без-параметров-и-ключевого-слова-return) + - [Ключевое слово _return_](#ключевое-слово-return) + - [Функции с одним параметром](#функции-с-одним-параметром) + - [Функции с двумя параметрами](#функции-с-двумя-параметрами) + - [Функции со множеством параметров](#функции-со-множеством-параметров) + - [Функции с неограниченным количеством параметров](#функции-с-неограниченным-количеством-параметров) + - [Неограниченное количество параметров в Function Declaration функциях](#неограниченное-количество-параметров-в-function-declaration-функциях) + - [Неограниченное количество параметров в стрелочных функциях](#неограниченное-количество-параметров-в-стрелочных-функциях) + - [Анонимные функции](#анонимные-функции) + - [Function Expression](#function-expression) + - [Самовызывающиеся функции](#самовызывающиеся-функции) + - ["Стрелочные" функции](#стрелочные-функции) + - [Функции с параметрами по умолчанию](#функции-с-параметрами-по-умолчанию) + - [Function declaration VS Стрелочные функции](#function-declaration-vs-стрелочные-функции) + - [💻 Упражнения](#-упражнения) + - [Упражнения: Уровень 1](#упражнения-уровень-1) + - [Упражнения: Уровень 2](#упражнения-уровень-2) + - [Упражнения: Уровень 3](#упражнения-уровень-3) + +# 📔 День 7 + +## Функции + +К этому моменту мы уже видели некоторые встроенные функции _JavaScript_. Однако, в этой главе мы сфокусируемся на пользовательских функциях. Перед тем, как мы начнём создавать функции, давайте постараемся ответить на два основных вопроса: "Что такое функция?" и "Для чего нужны функции?". + +Функция — это многократно испольуемый блок кода (или программных операторов), решающий определённую задачу. +Функция объявляется с помощью ключевого слова "function", идентификатора (имени функции) и следующими за идентификатором скобками. +В скобках могут заключаться параметры функции. Если функция получает параметры, она будет вызываться с аргументами. +Функции также могут иметь параметры по умолчанию. +Чтобы сохранить данные, полученные в результате выполнения функции, функция должна возвращать определённые типы данных. +Чтобы получить эти данные, мы должны вызвать функцию. + +Функции делают код: +- Более чистым и читабельным +- Многократно используемым +- Удобным для тестирования + +Функции могут быть объявлены одним из следующих способов: + +- _Function Declaration_ +- _Function Expression_ +- _Анонимно (Anonymous Function)_ +- _Через "стрелочку" (так называемые "Стрелочные" функции или Arrow Function)_ + +### Function Declaration + +Давайте посмотрим, как объявить и как вызвать функцию. + +```js +//Объявляем функцию без параметров с идентификатором functionName +function functionName() { + // Тут будет написан код функции + // Это пространство часто называют телом функции +} +functionName() // Вызываем функцию по её идентификатору (не забываем про скобки) +``` + +### Функции без параметров и ключевого слова return + +Функции могут быть объявлены без параметров + +**Пример:** + +```js +// Функция без параметров +// Данная функция получает значение квадрата числа 2 и выводит результат на консоль +function square() { + let num = 2 + let sq = num * num + console.log(sq) +} + +// Вызываем нашу функцию +square() // 4 + +// Функция без параметров +// Данная функция складывает число 10 и число 20, после чего выводит результат на консоль +function addTwoNumbers() { + let numOne = 10 + let numTwo = 20 + let sum = numOne + numTwo + + console.log(sum) +} + +// Вызываем нашу функцию +addTwoNumbers() // 30 +``` + +```js + function printFullName (){ + let firstName = 'Asabeneh' + let lastName = 'Yetayeh' + let space = ' ' + let fullName = firstName + space + lastName + console.log(fullName) +} + +printFullName() // Вызываем функцию +``` + +### Ключевое слово _return_ + +Функции также могут возвращать значения. Если функция не возвращает значение, то значение функции будет _undefined_. +Давайте перепишем функции, которые были рассмотрены выше. +Теперь мы будем возвращать значения, а не выводить их на печать. + +Чтобы функция могла вернуть значение, используется ключевое слово _return_: + +```js +function printFullName (){ + let firstName = 'Asabeneh' + let lastName = 'Yetayeh' + let space = ' ' + let fullName = firstName + space + lastName + return fullName // Функция вернёт значение переменной fullName +} +console.log(printFullName()) // Теперь мы выводим результат функции вне самой функции +``` + +```js + + function addTwoNumbers() { + let numOne = 2 + let numTwo = 3 + let total = numOne + numTwo + return total // Функция вернёт значение переменной total + + } + +console.log(addTwoNumbers()) // Теперь мы выводим результат функции вне самой функции +``` + +### Функции с одним параметром + +В качестве параметра функции могут выступать различные типы данных (number, string, boolean, object, function). + +```js +// Функция с одним параметром +function functionName(parm1) { + // Тут будет код функции +} +functionName(parm1) // Чтобы вызвать функцию, мы должны указать явно указать её аргумент (он будет использоваться параметром функции) +// Имя аргумента и имя параметра могут отличаться! + +// Данная функция будет возвращать площадь окружности с радиусом r +function areaOfCircle(r) { + let area = Math.PI * r * r + return area +} + +console.log(areaOfCircle(10)) // Не забываем указать аргумент функции + +function square(number) { + return number * number +} + +console.log(square(10)) +``` + +### Функции с двумя параметрами + +```js +// Функция с двумя параметрами +function functionName(parm1, parm2) { + // Тут будет код функции +} +functionName(parm1, parm2) // Теперь мы должны явно указать два аргумента + +// Теперь данная функция функция сможет посчитать сумму тех двуч чисел, +// которые будут указаны в качестве её аргументов при вызове +function sumTwoNumbers(numOne, numTwo) { + let sum = numOne + numTwo + console.log(sum) +} +sumTwoNumbers(10, 20) // Вызываем функцию +// Однако, сейчас функция просто выводит сумму на консоль + +// Добавим ключевое слово return +function sumTwoNumbers(numOne, numTwo) { + let sum = numOne + numTwo + return sum +} + +// Теперь она возвращает сумму двух чисел +console.log(sumTwoNumbers(10, 20)) // 30 + +function printFullName(firstName, lastName) { + return `${firstName} ${lastName}` +} +console.log(printFullName('Asabeneh', 'Yetayeh')) +``` + +### Функции со множеством параметров + +```js +// Функция со множеством параметров +function functionName(parm1, parm2, parm3,...){ + // Тут будет код функции +} +functionName(parm1,parm2,parm3,...) // В данном случае мы обязаны указать три аргумента + +// Данная функция получает массив в качестве параметра и возвращает сумму всех чисел внутри этого массива +function sumArrayValues(arr) { + let sum = 0; + for (let i = 0; i < arr.length; i++) { + sum = sum + arr[i]; + } + return sum; +} +const numbers = [1, 2, 3, 4, 5]; + +console.log(sumArrayValues(numbers)); // Вызываем функцию + +const areaOfCircle = (radius) => { + let area = Math.PI * radius * radius; + return area; +} +console.log(areaOfCircle(10)) + +``` + +### Функции с неограниченным количеством параметров + +Порой мы не можем заранее предугадать, какое количество аргументов пользователь собирается использовать. +В таких случаях мы должны использовать функции, способные принимать неограниченное количество аргументов. +Мы можем это сделать как с помощью обычных (_Function Declaration_), так и с помощью "стрелочных" (_Arrow Function_) функций. +Их использование имеет существенные различия, о которых мы обязаны знать. +Давайте рассмотрим примеры обоих случаев: + +#### Неограниченное количество параметров в Function Declaration функциях + + +Объявление функции предоставляет массив аргументов в области видимости функции, подобный объекту. +Всё, что было передано в качестве аргументов в функцию, может быть доступно из объекта _arguments_ внутри самой функции. +Давайте рассмотрим пару примеров. + +```js +// Давайте получим содержимое объекта arguments +function sumAllNums() { + console.log(arguments) +} + +sumAllNums(1, 2, 3, 4) +// Arguments(4) [1, 2, 3, 4, callee: ƒ, Symbol(Symbol.iterator): ƒ] + +``` + +```js +// Function Declaration + +// Данная функция просуммирует все значения, переданные в качестве аргументов. +// После чего, мы вернём результат суммирования. + +// Параметры не указаны явно +function sumAllNums() { + let sum = 0 + for (let i = 0; i < arguments.length; i++) { + sum += arguments[i] + } + return sum +} + +// Но передавать аргументы в функцию мы всё равно можем +console.log(sumAllNums(1, 2, 3, 4)) // 10 +console.log(sumAllNums(10, 20, 13, 40, 10)) // 93 +console.log(sumAllNums(15, 20, 30, 25, 10, 33, 40)) // 173 +``` + +#### Неограниченное количество параметров в "стрелочных" функциях + +"Стрелочные" функции не имеют объекта _arguments_. Чтобы описать "стрелочную" функцию, способную принимать неограниченное количество параметров, мы можем воспользоваться такой особенностью _JavaScript_, как _остаточные параметры_. Они указываются через оператор расширения (...), за которым следуюет идентификатор массива аргументов. Всё, что попало в "стрелочную" функцию в качестве аргументов, будет храниться в этом массиве. +Давайте рассмотрим пример: + + ```js +// Давайте получим доступ к объекту arguments +​ +const sumAllNums = (...args) => { + // console.log(arguments), объект arguments не существует у "стрелочных" функций + // Вместо него мы используем оператор расширения (...) + console.log(args) +} + +sumAllNums(1, 2, 3, 4) +// [1, 2, 3, 4] + +``` + +```js +// Function Declaration +​ +const sumAllNums = (...args) => { + let sum = 0 + for (const element of args) { + sum += element + } + return sum +} + +console.log(sumAllNums(1, 2, 3, 4)) // 10 +console.log(sumAllNums(10, 20, 13, 40, 10)) // 93 +console.log(sumAllNums(15, 20, 30, 25, 10, 33, 40)) // 173 +``` + +### Анонимные функции + +Анонимные функции не имеют имени. + +```js +// Синтаксис + +const anonymousFun = function() { + console.log( + 'Я анонимная функция, и мое значение хранится в anonymousFun.' + ) +} +``` + +### Function Expression + +Функции, объявленные с помощью Function Expression — это анонимные функции. После того, как мы создаём функцию без имени, мы присваиваем её переменной. Чтобы вернуть значение такой функции, мы должны обратиться к переменной. +Давайте рассмотрим пример ниже. + +```js +// Function Expression + +const square = function(n) { + return n * n +} + +console.log(square(2)) // -> 4 +``` + +### Самовызывающиеся функции + +Самовызывающиеся функции — это анонимные функции, которые выполняются только в тот момент, когда выполнение кода доходит до их объявления. + +```js +(function(n) { + console.log(n * n) +})(2) // 4, + +// Но, чтобы вернуть результат (если это нужно), вместо его вывода на печать, +// мы должны сохранить это значение как показано ниже + +let squaredNum = (function(n) { + return n * n +})(10) + +console.log(squaredNum) +``` + +### "Стрелочные" функции + +"Стрелочные" функции — это альтернативное объявление функции. Однако, "стрелочные" функции и функции, объявленные с помощью Function Declaration или Function Expression, имеют ряд незначительных отличий. + +Чтобы объявить "стрелочную" функцию используется "стрелочка" (=>) вместо ключевого слова _function_. +Давайте рассмотрим примеры ниже, чтобы изучить особенности "стрелочных" функций. + +```js +// Давайте создадим "стрелочную" функцию по примеру аналогичной Function Declaration функции + +// Function Declaration +function square(n) { + return n * n +} + +console.log(square(2)) // 4 + +// "Стрелочная" функция +const square = n => { + return n * n +} + +console.log(square(2)) // -> 4 + +// Если тело "стрелочной" функции описывается одной строкой, +// такая функция может быть объявлена без фигурных скобок и ключевого слова return +const square = n => n * n // -> 4 +``` + +```js +const changeToUpperCase = arr => { + const newArr = [] + for (const element of arr) { + newArr.push(element.toUpperCase()) + } + return newArr +} + +const countries = ['Finland', 'Sweden', 'Norway', 'Denmark', 'Iceland'] +console.log(changeToUpperCase(countries)) + +// ["FINLAND", "SWEDEN", "NORWAY", "DENMARK", "ICELAND"] +``` + +```js +const printFullName = (firstName, lastName) => { + return `${firstName} ${lastName}` +} + +console.log(printFullName('Asabeneh', 'Yetayeh')) +``` + +Описанная выше функция имеет только оператор return, поэтому мы можем явно вернуть ее следующим образом. + +```js +const printFullName = (firstName, lastName) => `${firstName} ${lastName}` + +console.log(printFullName('Asabeneh', 'Yetayeh')) +``` + +### Функции с параметрами по умолчанию + +Иногда мы передаём значения по умолчанию параметрам. Если при вызове функции не передан аргумент, будет использовано значение по умолчанию. Все виды объявления функций могут иметь одно или несколько значений по умолчанию. + +```js +// Синтаксис + +// Объявляем функцию +function functionName(param = value) { + // Тело функции +} + +// Вызываем функцию +functionName() +functionName(arg) +``` + +**Пример:** + +```js +function greetings(name = 'Peter') { + let message = `${name}, welcome to 30 Days Of JavaScript!` + return message +} + +console.log(greetings()) // Peter, welcome to 30 Days Of JavaScript! +console.log(greetings('Asabeneh')) // Asabeneh, welcome to 30 Days Of JavaScript! +``` + +```js +function generateFullName(firstName = 'Asabeneh', lastName = 'Yetayeh') { + let space = ' ' + let fullName = firstName + space + lastName + return fullName +} + +console.log(generateFullName()) // Asabeneh Yetayeh +console.log(generateFullName('David', 'Smith')) // David Smith +``` + +```js +function calculateAge(birthYear, currentYear = 2019) { + let age = currentYear - birthYear + return age +} + +console.log('Age: ', calculateAge(1819)) // Age: 200 +``` + +```js +function weightOfObject(mass, gravity = 9.81) { + let weight = mass * gravity + ' N' // Значение должно быть предварительно преобразовано в строчный тип данных + return weight +} + +console.log('Weight of an object in Newton: ', weightOfObject(100)) // Weight of an object in Newton: 981 N +console.log('Weight of an object in Newton: ', weightOfObject(100, 1.62)) // Weight of an object in Newton: 162 N +``` + +Давайте превратим выше описанные функции в "стрелочные". + +```js +// Синтаксис + +// Объявляем функцию +const functionName = (param = value) => { + // Тело функции +} + +// Вызываем функцию +functionName() +functionName(arg) +``` + +**Пример:** + +```js +const greetings = (name = 'Peter') => { + let message = name + ', welcome to 30 Days Of JavaScript!' + return message +} + +console.log(greetings()) // Peter, welcome to 30 Days Of JavaScript! +console.log(greetings('Asabeneh')) // Asabeneh, welcome to 30 Days Of JavaScript! +``` + +```js +const generateFullName = (firstName = 'Asabeneh', lastName = 'Yetayeh') => { + let space = ' ' + let fullName = firstName + space + lastName + return fullName +} + +console.log(generateFullName()) // Asabeneh Yetayeh +console.log(generateFullName('David', 'Smith')) // David Smith +``` + +```js + +const calculateAge = (birthYear, currentYear = 2019) => currentYear - birthYear +console.log('Age: ', calculateAge(1819)) // Age: 200 +``` + +```js +// Значение должно быть предварительно преобразовано в строчный тип данных +const weightOfObject = (mass, gravity = 9.81) => mass * gravity + ' N' + +console.log('Weight of an object in Newton: ', weightOfObject(100)) // Weight of an object in Newton: 981 N +console.log('Weight of an object in Newton: ', weightOfObject(100, 1.62)) // Weight of an object in Newton: 162 N +``` + +### Function Declaration VS "Стрелочные" функции + +Это будет рассмотрено в другом разделе. + +🌕 Вы — восходящая звезда, теперь вы знаете, что такое функция. Вы зарядились силой функций, выполнив задания седьмого дня и сделав семь шагов на пути к величию. А теперь сделайте несколько упражнений для мозга и мышц. + +## 💻 Упражнения + +### Упражнения: Уровень 1 + +1. Объявите функцию _fullName_. Она будет выводить ваше полное имя. +2. Объявите функцию _fullName_, теперь она должна принимать firstName и lastName в качестве параметров и возвращать строку с Вашим полным именем. +3. Объявите функцию _addNumbers_, она должна принимать два параметра и возвращать сумму. +4. Площадь прямоугольника вычисляется следующим образом: _площадь = длина x ширина_. Напишите функцию _areaOfRectangle_, которая будет вычислять площадь прямоугольника по заданным параметрам. +5. Периметр прямоугольника вычисляется следующим образом: периметр = 2x(длина + ширина)_. Напишите функцию _perimeterOfRectangle_, которая будет вычислять периметр прямоугольника по заданным параметрам. +6. Объём прямоугольной призмы вычисляется следующим образом: _объём = длина x ширина x высота_. Напишите функцию Объём прямоугольной призмы вычисляется следующим образом: _объём = длина x ширина x высота_. Напишите функцию, которая вычисляет _volumeOfRectPrism_, которая будет вычислять объём прямоугольной призмы. +7. Площадь окружности вычисляется следующим образом: _площадь = π x r x r_. Напишите функцию _areaOfCircle_, которая будет вычислять площадь окружности по её радиусу. +8. Длина окружности вычисляется следующим образом: _площадь = 2πr_. Напишите функцию _circumOfCircle_, которая будет вычислять длину окружности по её радиусу. +9. Плотность вещества рассчитывается следующим образом: _плотность = масса/объём_. Напишите функцию _density_, которая вычисляет плотность вещества по заданным массе и объёму. +10. Скорость рассчитывается путём деления общего расстояния, пройденного движущимся объектом, на общее время, затраченное на его перемещение. Напишите функцию _speed_, которая вычисляет скорость движущегося объекта по данным параметрам. +11. Вес вещества рассчитывается следующим образом: _вес = масса x сила тяжести_. Напишите функцию _weight_, которая вычисляет вес. +12. Температуру из °C можно перевести в °F по этой формуле: _°F = (°C x 9/5) + 32_. Напишите функцию _convertCelsiusToFahrenheit_, которая преобразует °C в °F. +13. Индекс массы тела (ИМТ) рассчитывается следующим образом: _ИМТ = вес в кг / (рост x рост) в м²_. Напишите функцию для вычисления ИМТ. ИМТ используется для определения различных весовых групп у взрослых в возрасте 20 лет и старше. На основе представленной ниже информации проверьте, имеет ли человек _недостаточный, нормальный, избыточный вес_ или _ожирение_. + + - _Недостаточный вес_: ИМТ менее 18,5 + - _Недостаточный вес_: ИМТ менее 18,5 + - _Нормальный вес_: ИМТ от 18,5 до 24,9 + - _Избыточный вес_: ИМТ от 25 до 29,9 + - _Ожирение_: ИМТ 30 или более + +14. Напишите функцию с именем _checkSeason_, она принимает название месяца в качестве параметра и возвращает сезон: осень, зима, весна или лето. +15. Math.max возвращает наибольший аргумент. Напишите функцию findMax, которая принимает три аргумента и возвращает их максимальное значение, не используя метод Math.max. + + ```js + console.log(findMax(0, 10, 5)) // 10 + console.log(findMax(0, -10, -2)) // 0 + ``` + +### Упражнения: Уровень 2 + +1. Линейное уравнение вычисляется следующим образом: _ax + by + c = 0_. Напишите функцию _solveLinEquation_, которая вычисляет значение линейного уравнения. +1. Квадратичное уравнение вычисляется следующим образом: _ax + by + c = 0_. Напишите функцию _solveQuadEquation_, которая вычисляет значение квадратичного уравнения. + + ```js + console.log(solveQuadratic()) // {0} + console.log(solveQuadratic(1, 4, 4)) // {-2} + console.log(solveQuadratic(1, -1, -2)) // {2, -1} + console.log(solveQuadratic(1, 7, 12)) // {-3, -4} + console.log(solveQuadratic(1, 0, -4)) // {2, -2} + console.log(solveQuadratic(1, -1, 0)) // {1, 0} + ``` + +1. Объявите функцию с именем _printArray_. Она принимает массив в качестве параметра и выводит каждое его значение. +1. Напишите функцию с именем _showDateTime_, которая показывает время в следующем формате: 08/01/2020 04:08, используя объект _Date_. + + ```js + showDateTime() //08/01/2020 04:08 + ``` + +1. Объявите функцию с именем _swapValues_. Эта функция меняет значение x на y. + + ```js + swapValues(3, 4) // x => 4, y=>3 + swapValues(4, 5) // x = 5, y = 4 + ``` + +1. Объявите функцию с именем _reverseArray_. Она принимает массив в качестве параметра и возвращает обратный массив (не используйте встроенные методы _JavaScript_). + + ```js + console.log(reverseArray([1, 2, 3, 4, 5])) + //[5, 4, 3, 2, 1] + console.log(reverseArray(['A', 'B', 'C'])) + //['C', 'B', 'A'] + ``` + +1. Объявите функцию с именем _capitalizeArray_. Она принимает массив в качестве параметра и возвращает значение — capitalizedarray. +1. Объявите функцию с именем _addItem_. Она принимает элемент в качестве параметра и возвращает массив после добавления элемента. +1. Объявите функцию с именем _removeItem_. Она принимает индекс в качестве параметра и возвращает массив после удаления элемента. +1. Объявите функцию с именем _sumOfNumbers_. Она принимает числовой параметр и складывает все числа в указанном диапазоне. +1. Объявите функцию с именем _sumOfOdds_. Она принимает числовой параметр и складывает все нечётные числа в заданном диапазоне. +1. Объявите функцию с именем _sumOfEven_. Она принимает числовой параметр и складывает все чётные числа в заданном диапазоне. +1. Объявите функцию _evensAndOdds_. Она принимает в качестве параметра положительное целое число и подсчитывает количество чётных и нечётных чисел до указанного параметра. + + ```js + evensAndOdds(100); + // The number of odds are 50. + // The number of evens are 51. + ``` + +1. Напишите функцию, которая принимает любое количество аргументов и возвращает сумму аргументов. + + ```js + sum(1, 2, 3) // -> 6 + sum(1, 2, 3, 4) // -> 10 + ``` + +1. Напишите функцию _randomUserIp_, которая генерирует случайный IP-адрес. +1. Напишите функцию _randomMacAddress_, которая генерирует случайный MAC-адрес. +1. Объявите функцию _randomHexaNumberGenerator_. При вызове эта функция генерирует случайное шестнадцатеричное число. Функция возвращает это шестнадцатеричное число. + + ```sh + console.log(randomHexaNumberGenerator()); + '#ee33df' + ``` + +1. Объявите функцию _userIdGenerator_. При вызове эта функция генерирует семисимвольный идентификатор. Функция возвращает этот идентификатор. + + ```sh + console.log(userIdGenerator()); + 41XTDbE + ``` + +### Упражнения: Уровень 3 + +1. Измените функцию _userIdGenerator_. Объявите функцию _userIdGeneratedByUser_. Она не принимает никаких параметров, но принимает два входных значения с помощью prompt(). Одно из входных значений — количество символов, а второе — количество идентификаторов, которые необходимо сгенерировать. + + ```sh + userIdGeneratedByUser() + 'kcsy2 + SMFYb + bWmeq + ZXOYh + 2Rgxf + ' + userIdGeneratedByUser() + '1GCSgPLMaBAVQZ26 + YD7eFwNQKNs7qXaT + ycArC5yrRupyG00S + UbGxOFI7UXSWAyKN + dIV0SSUTgAdKwStr + ' + ``` + +1. Напишите функцию _rgbColorGenerator_, которая генерирует случайные цвета RGB. + + ```sh + rgbColorGenerator() + rgb(125,244,255) + ``` + +1. Напишите функцию **_arrayOfHexaColors_**, которая возвращает любое количество шестнадцатеричных цветов в массиве. +1. Напишите функцию **_arrayOfRgbColors_**, которая возвращает любое количество цветов RGB в массиве. +1. Напишите функцию **_convertHexaToRgb_**, которая преобразует цвет из формата HEX в формат RGB и возвращает этот цвет в формате RGB. +1. Напишите функцию **_convertRgbToHexa_**, которая преобразует RGB-цвет в шестнадцатеричный формат и возвращает этот цвет в шестнадцатеричном формате. +1. Напишите функцию **_generateColors_**, которая может генерировать любое количество цветов в формате HEX или RGB. + + ```js + console.log(generateColors('hexa', 3)) // ['#a3e12f', '#03ed55', '#eb3d2b'] + console.log(generateColors('hexa', 1)) // '#b334ef' + console.log(generateColors('rgb', 3)) // ['rgb(5, 55, 175)', 'rgb(50, 105, 100)', 'rgb(15, 26, 80)'] + console.log(generateColors('rgb', 1)) // 'rgb(33,79, 176)' + ``` + +1. Назовите свою функцию _shuffleArray_, она принимает массив в качестве параметра и возвращает перемешанный массив. +1. Назовите свою функцию _factorial_, она принимает целое число в качестве параметра и возвращает факториал числа. +1. Назовите свою функцию _isEmpty_, она принимает параметр и проверяет, является ли он пустым или нет. +1. Назовите вашу функцию _sum_, она принимает любое количество аргументов и возвращает сумму этих аргументов. +1. Напишите функцию _sumOfArrayItems_, которая принимает в качестве параметра массив и возвращает сумму всех его элементов. Проверьте, являются ли все элементы массива числовыми. Если нет, верните корректную обратную связь. +1. Напишите функцию _average_, которая принимает в качестве параметра массив и возвращает среднее значение элементов. Проверьте, являются ли все элементы массива числовыми. Если нет, верните корректную обратную связь. +1. Напишите функцию _modifyArray_, которая принимает массив в качестве параметра, изменяет пятый элемент массива и возвращает массив. Если длина массива меньше пяти, функция возвращает «Элемент не найден». + + ```js + console.log(modifyArray(['Avocado', 'Tomato', 'Potato','Mango', 'Lemon','Carrot']); + ``` + + ```sh + ['Avocado', 'Tomato', 'Potato','Mango', 'LEMON', 'Carrot'] + ``` + + ```js + console.log(modifyArray(['Google', 'Facebook','Apple', 'Amazon','Microsoft', 'IBM']); + ``` + + ```sh + ['Google', 'Facebook','Apple', 'Amazon','MICROSOFT', 'IBM'] + ``` + + ```js + console.log(modifyArray(['Google', 'Facebook','Apple', 'Amazon']); + ``` + + ```sh + 'Not Found' + ``` + +1. Напишите функцию под названием _isPrime_, которая проверяет, является ли число простым. +1. Напишите функцию, которая проверяет, все ли элементы в массиве уникальны. +1. Напишите функцию, которая проверяет, имеют ли все элементы массива одинаковый тип данных. +1. Имя переменной _JavaScript_ не поддерживает специальные символы, кроме \$ и \_. Напишите функцию **isValidVariable**, которая проверяет, является переменная допустимой или недопустимой. +1. Напишите функцию, которая возвращает массив из семи случайных чисел в диапазоне от 0 до 9. Все числа должны быть уникальными. + + ```js + sevenRandomNumbers() // [(1, 4, 5, 7, 9, 8, 0)] + ``` + +1. Напишите функцию под названием _reverseCountries_, она берет массив стран, сначала копирует его, а затем возвращает обратный массив исходного массива. + +🎉 ПОЗДРАВЛЯЮ! 🎉 + +[<< День 6](../06_Day_Loops/06_day_loops.md) | [День 8 >>](../08_Day_Objects/08_day_objects.md)