Добавить в корзинуПозвонить
Найти в Дзене

Основы основ. Продолжение. Функции.

Функции для меня пока что вроде понятная штука, а как лезу в чужой код и пытаюсь разобраться что к чему - ничего не понимаю. Поэтому детально, последовательно и по полочкам разложу все с самого начала. Для выражения любой произвольной операции в программировании существует понятие функция. Функции бывают как встроенные, так и добавленные программистом. С одной встроенной функцией мы уже знакомы, это console.log(). Ниже пример вызова функции length(), которая считает количество символов в строке: // length это функция import { length } from './hexlet-basics/string.js'; // Вызов функции length с параметром 'Hello!' const result = length('Hello!'); console.log(result); // => 6 // Вызов length возвращает результат (длину строки) // который записывается в константу с именем result Параметры (или аргументы) — это информация, которую функция получает при вызове. Именно на основе этой информации функция, как правило, вычисляет что-то и выдает результат. Мы создали константу result и указ
Оглавление

Функции для меня пока что вроде понятная штука, а как лезу в чужой код и пытаюсь разобраться что к чему - ничего не понимаю. Поэтому детально, последовательно и по полочкам разложу все с самого начала.

Для выражения любой произвольной операции в программировании существует понятие функция. Функции бывают как встроенные, так и добавленные программистом. С одной встроенной функцией мы уже знакомы, это console.log().

Ниже пример вызова функции length(), которая считает количество символов в строке:

// length это функция

import { length } from './hexlet-basics/string.js';

// Вызов функции length с параметром 'Hello!'

const result = length('Hello!');

console.log(result); // => 6

// Вызов length возвращает результат (длину строки)

// который записывается в константу с именем result

Параметры (или аргументы) — это информация, которую функция получает при вызове. Именно на основе этой информации функция, как правило, вычисляет что-то и выдает результат.

Мы создали константу result и указали интерпретатору записать в нее результат, возвращаемый функцией length() при ее вызове. В этом смысле функции подобны операциям – они всегда возвращают результат своей работы.

Запись length('Hello!') означает, что вызывается функция с именем length, в которую был передан параметр 'Hello!'. Функция length() считает длину именно той строки, которая ей была передана.

Сигнатура функции.

Функция Math.pow(), возводящая число в какую-нибудь степень, принимает два параметра: какое число возводить и в какую степень возводить. Про функцию Math.pow() можно почитать в документации.

Вызов функции - выражение.

Выражение – нечто, возвращающее результат, который можно использовать. Особенность выражений в том, что они возвращают результат, который можно, например, присвоить константе или вывести на экран. Например:

// Тут выражение это 1 + 5

const sum = 1 + 5;

console.log(1 + 5);

Мы знаем, что функции возвращают результат, поэтому они считаются выражениями. Из этого автоматически следует много интересного. Например, мы можем использовать вызов функции прямо в математических операциях. Вот как можно получить индекс последнего символа в слове:

import { length } from './hexlet-basics/string.js';

const name = 'JavaScript';

// Индексы начинаются с нуля

// Вызов функции и вычитание вместе!

const lastIndex = length(name) - 1;

console.log(lastIndex); // 9

Все это справедливо для любых функций, например, строковых:

import { length } from './hexlet-basics/string.js';

const name = 'JavaScript';

// Используется интерполяция

console.log(`Последний символ: ${name[length(name) - 1]}`);

// 'Последний символ: t'