Функция и переменные
Переменные внутри функции существуют только внутри этой функции — этот эффект называется областью видимости.
Если пытаться вызвать их снаружи, то возникнет ошибка. В примере выше мы увидим, что
#функции #переменные
Подробнее
Переменные внутри функции существуют только внутри этой функции — этот эффект называется областью видимости.
Если пытаться вызвать их снаружи, то возникнет ошибка. В примере выше мы увидим, что
numberFive
не задан, поскольку вне функции мы действительно не задали numberFive
.#функции #переменные
Подробнее
👍2
Рекурсивные функции
Внутри функции можно вызывать её саму — это пример рекурсивной функции.
Если разложить пример, то получится следующая цепочка:
- fac(3) это 3 * fac(2);
- fac(2) это 2 * fac(1);
- fac(1) это 1.
Получается, что
#функции #рекурсия
Подробнее
Внутри функции можно вызывать её саму — это пример рекурсивной функции.
Если разложить пример, то получится следующая цепочка:
- fac(3) это 3 * fac(2);
- fac(2) это 2 * fac(1);
- fac(1) это 1.
Получается, что
fac(3) это
3 * 2 * 1, то есть 6. Такой подход часто применяется в математических операциях, но не ограничивается ими.#функции #рекурсия
Подробнее
❤1
Стрелочные функции
Стрелочная функция записывается намного короче, чем обычная. В самой простой записи ключевое слово
В многострочных стрелочных функциях кода больше, поэтому они имеют фигурные скобки, но в остальном не отличаются.
#функции #const
Подробнее
Стрелочная функция записывается намного короче, чем обычная. В самой простой записи ключевое слово
function
и фигурные скобки не требуются.В многострочных стрелочных функциях кода больше, поэтому они имеют фигурные скобки, но в остальном не отличаются.
#функции #const
Подробнее
👍5❤1🔥1
Сокращение с помощью AND
Давайте рассмотрим ситуацию, в которой у нас есть логическое значение и функция.
Давайте рассмотрим ситуацию, в которой у нас есть логическое значение и функция.
let isPrime = true;Немало кода получается ради проверки логического условия и вызова функции.
const startWatching = () => {
console.log('Started Watching!');
}
if (isPrime) {А как насчёт использования сокращённой записи вместе с оператором AND (&&)? Да, условный оператор "if" нам больше не нужен. Круто, правда?
startWatching();
}
isPrime && startWatching();#методы #and
🔥12👍6
isInteger
Это аккуратный способ узнать, является ли значение целым числом. Встроенный в JavaScript API
#методы #isInteger
Это аккуратный способ узнать, является ли значение целым числом. Встроенный в JavaScript API
Number
предоставляет для этого метод isInteger()
. Очень полезная штука, о которой следует знать.#методы #isInteger
🔥3❤2👍2
Значение по умолчанию с помощью OR
Если для переменной необходимо предусмотреть запасное значение по умолчанию, это достаточно просто реализуется с помощью оператора OR.
Если для переменной необходимо предусмотреть запасное значение по умолчанию, это достаточно просто реализуется с помощью оператора OR.
let person = {name: 'Jack'};#операторы #isInteger
// если свойство "age" равно "undefined", устанавливает значение 35
let age = person.age || 35;
console.log(Age of ${person.name} is ${age});
👍8
Произвольные значения
Генерирование произвольных значений или получение произвольного элемента массива – очень полезные методы, которые стоит держать под рукой. Я использую их почти в каждом своём проекте.
Получить произвольный элемент из массива:
Генерирование произвольных значений или получение произвольного элемента массива – очень полезные методы, которые стоит держать под рукой. Я использую их почти в каждом своём проекте.
Получить произвольный элемент из массива:
let planets = ['Mercury ', 'Mars', 'Venus', 'Earth', 'Neptune', 'Uranus', 'Saturn', 'Jupiter'];Генерирование произвольного числа из диапазона с указанием минимального и максимального значений:
let randomPlanet = planets[Math.floor(Math.random() * planets.length)];
console.log('Random Planet', randomPlanet);
let getRandom = (min, max) => {#массив
return Math.round(Math.random() * (max - min) + min);
}
console.log('Get random', getRandom(0, 10));
🔥9
Значения параметров функции по умолчанию
В JavaScript параметры функции подобны локальным переменным. При вызове этой самой функции вы можете и не передавать значения для её параметров. В этом случае они принимают значение "undefined", что может привести к нежелательным последствиям.
Существует простой способ передачи значения по умолчанию для параметров функции при их определении. В примере ниже для параметра "message" функции "greetings" передаётся значение по умолчанию "Hello".
В JavaScript параметры функции подобны локальным переменным. При вызове этой самой функции вы можете и не передавать значения для её параметров. В этом случае они принимают значение "undefined", что может привести к нежелательным последствиям.
Существует простой способ передачи значения по умолчанию для параметров функции при их определении. В примере ниже для параметра "message" функции "greetings" передаётся значение по умолчанию "Hello".
let greetings = (name, message='Hello,') => {#функция
return ${message} ${name};
}
console.log(greetings('Jack'));
console.log(greetings('Jack', 'Hola!'));
👍9
Обязательные параметры функции
Сначала объявляем функцию, которая будет выдавать в консоль сообщение об ошибке
#функция
Сначала объявляем функцию, которая будет выдавать в консоль сообщение об ошибке
let isRequired = () => {Затем эту функцию присваиваем как значение по умолчанию для параметров, которые хотим сделать обязательными. Помните, что если при вызове функции её параметр равен "
throw new Error('This is a mandatory parameter.');
}
undefined
", подставляется значение по умолчанию, в обратном случае значение по умолчанию игнорируется.let greetings = (name=isRequired(), message='Hello,') => {В примере выше параметр "
return ${message} ${name};
}
console.log(greetings());
name
" будет иметь значение "undefined
", из-за чего будет произведена попытка установить значение по умолчанию, которым и выступает функция "isRequired()
". Будет вызвана ошибка.#функция
👍13❤1🔥1
Оператор "Запятая"
В JavaScript оператор запятой используется для оценки каждого из операндов слева направо и возврата значения последнего операнда.
В JavaScript оператор запятой используется для оценки каждого из операндов слева направо и возврата значения последнего операнда.
let count = 1;В примере выше значением переменной "
let ret = (count++, count);
console.log(ret);
ret
" будет число 2. По тому же принципу, результатом следующего кода будет вывод в консоль числа 32.let val = (12, 32);Где мы его используем? Есть идеи? Чаще всего оператор запятой используется параметров в цикле "
console.log(val);
for
". В примере ниже оператор запятой задаёт значение переменной "j
" после объявления счётчика "i
".for (var i = 0, j = 50; i <= 50; i++, j--)#оператор
👍4❤1🔥1
Объединение нескольких объектов
У вас может возникнуть потребность объединить вместе два объекта, чтобы создать третий, более полный. В этом случае можно использовать оператор "
Для глубокого объединения объектов, следует использовать, например, библиотеку lodash
#объект
У вас может возникнуть потребность объединить вместе два объекта, чтобы создать третий, более полный. В этом случае можно использовать оператор "
...
" (да, три точки).let emp = {Их можно объединить с помощью spread-оператора (оператора расширения):
'id': 'E_01',
'name': 'Jack',
'age': 32,
'addr': 'India'
};
let job = {
'title': 'Software Dev',
'location': 'Paris'
};
// spread-оператор
let merged = {...emp, ...job};
console.log('Spread merged', merged);
Существует и другой путь такого объединения. С помощью "Object.assign()
"console.log('Object assign', Object.assign({}, emp, job));Обратите внимание, что и spread-оператор и "
Object.assign
" выполняют поверхностное (shallow) объединение. При поверхностном объединении, если свойства повторяются, то происходит перезапись первого объекта данными из таких же свойств второго.Для глубокого объединения объектов, следует использовать, например, библиотеку lodash
#объект
👍5❤1🔥1
Обмен значений переменных
С помощью техники деструктуризации, это сделать очень просто
С помощью техники деструктуризации, это сделать очень просто
let fire = '';#переменные
let fruit = '';
[fruit, fire] = [fire, fruit];
console.log(fire, fruit);
👍7❤1🔥1
isArray
Ещё один полезный метод, на этот раз позволяющий определить, являются ли входящие данные массивом
Ещё один полезный метод, на этот раз позволяющий определить, являются ли входящие данные массивом
let emojis = ['', '️', '', ''];#массив
console.log(Array.isArray(emojis));
let obj = {};
console.log(Array.isArray(obj));
👍5
"undefined" против "null"
"
"
"
"
undefined
" – присутствует у переменной, которая была объявлена, но значение для неё задано не было"
null
" – обозначает пустое или несуществующее значение, которое явно присваивается переменной"
undefined
" и "null
" не равны при строгом сравнивании:undefined === null // false#массив
👍7