Elementor Header #8

40. Стандартная библиотека

JavaScript поставляется с богатой стандартной библиотекой, которая предоставляет множество полезных функций и объектов для работы с различными типами данных и выполнения общих задач. В этом уроке мы рассмотрим некоторые ключевые части стандартной библиотеки JavaScript.

Основные разделы стандартной библиотеки

  1. Объекты и их методы
  2. Работа с массивами
  3. Работа со строками
  4. Работа с числами и математикой
  5. Работа с датами
  6. JSON
  7. Работа с объектом Math

1. Объекты и их методы

Объекты являются основной структурой данных в JavaScript. Стандартная библиотека предоставляет множество методов для работы с объектами.

Создание объекта

				
					let person = {
  name: "John",
  age: 30
};

				
			

Методы объекта

  • Object.keys(obj): Возвращает массив ключей объекта.

				
					console.log(Object.keys(person)); // ["name", "age"]

				
			
  • Object.values(obj): Возвращает массив значений объекта.
				
					console.log(Object.values(person)); // ["John", 30]

				
			
  • Object.entries(obj): Возвращает массив пар [ключ, значение].
				
					console.log(Object.entries(person)); // [["name", "John"], ["age", 30]]

				
			

2. Работа с массивами

Массивы являются важной частью JavaScript, и стандартная библиотека предоставляет множество методов для их обработки.

Создание массива

				
					let numbers = [1, 2, 3, 4, 5];

				
			

Методы массива

  • Array.prototype.push(): Добавляет элемент в конец массива.

				
					numbers.push(6);
console.log(numbers); // [1, 2, 3, 4, 5, 6]

				
			
  • Array.prototype.pop(): Удаляет последний элемент массива.
				
					numbers.pop();
console.log(numbers); // [1, 2, 3, 4, 5]

				
			
  • Array.prototype.map(): Создает новый массив, применяя функцию к каждому элементу исходного массива.
				
					let squared = numbers.map(x => x * x);
console.log(squared); // [1, 4, 9, 16, 25]

				
			
  • Array.prototype.filter(): Создает новый массив, включающий только элементы, которые прошли проверку функции.
				
					let even = numbers.filter(x => x % 2 === 0);
console.log(even); // [2, 4]

				
			

3. Работа со строками

Строки в JavaScript являются примитивными значениями, но стандартная библиотека предоставляет множество методов для их обработки.

Создание строки

				
					let str = "Hello, World!";

				
			

Методы строки

  • String.prototype.length: Возвращает длину строки.

				
					console.log(str.length); // 13

				
			
  • String.prototype.toUpperCase(): Преобразует строку в верхний регистр.
				
					console.log(str.toUpperCase()); // "HELLO, WORLD!"

				
			
  • String.prototype.toLowerCase(): Преобразует строку в нижний регистр.
				
					console.log(str.toLowerCase()); // "hello, world!"

				
			
  • String.prototype.includes(): Проверяет, содержит ли строка другую строку.
				
					console.log(str.includes("World")); // true

				
			
  • String.prototype.split(): Разбивает строку на массив подстрок.
				
					let words = str.split(" ");
console.log(words); // ["Hello,", "World!"]

				
			

4. Работа с числами и математикой

JavaScript предоставляет объект Math и методы для работы с числами.

Объект Math

  • Math.max(): Возвращает наибольшее из переданных чисел.
				
					console.log(Math.max(1, 2, 3)); // 3

				
			
  • Math.min(): Возвращает наименьшее из переданных чисел.
				
					console.log(Math.min(1, 2, 3)); // 1

				
			
  • Math.random(): Возвращает случайное число от 0 до 1.
				
					console.log(Math.random()); // случайное число от 0 до 1

				
			
  • Math.round(): Округляет число до ближайшего целого.
				
					console.log(Math.round(4.6)); // 5

				
			

5. Работа с датами

JavaScript предоставляет объект Date для работы с датами и временем.

Создание даты

				
					let now = new Date();
console.log(now); // текущая дата и время

				
			

Методы объекта Date

  • Date.prototype.getFullYear(): Возвращает год.

				
					console.log(now.getFullYear()); // текущий год

				
			
  • Date.prototype.getMonth(): Возвращает месяц (от 0 до 11).
				
					console.log(now.getMonth()); // текущий месяц

				
			
  • Date.prototype.getDate(): Возвращает день месяца (от 1 до 31).
				
					console.log(now.getDate()); // текущий день месяца

				
			

6. JSON

JSON (JavaScript Object Notation) — это формат обмена данными. JavaScript предоставляет методы для работы с JSON.

  • Преобразование объекта в JSON

				
					let person = {
  name: "John",
  age: 30
};

let json = JSON.stringify(person);
console.log(json); // {"name":"John","age":30}

				
			
  • Преобразование JSON в объект
				
					let parsed = JSON.parse(json);
console.log(parsed); // {name: "John", age: 30}

				
			

Распространенные ошибки

Использование глобальных переменных

Глобальные переменные могут изменяться в любой части программы, что приводит к недетерминированности

				
					let globalValue = 10;

function addGlobalValue(a) {
  return a + globalValue;
}

				
			

Функции с побочными эффектами

Изменение состояния вне функции делает её поведение непредсказуемым.

				
					let counter = 0;

function increment() {
  counter += 1;
  return counter;
}

				
			

Зависимость от внешних ресурсов

Внешние ресурсы, такие как системное время, делают функцию недетерминированной.

				
					function getCurrentDate() {
  return new Date();
}

				
			

Необработка входных данных

Необработка или некорректная обработка входных данных может привести к непредсказуемым результатам.

				
					function add(a, b) {
  return a + b;
}

console.log(add(2, "3")); // "23", а не 5, как ожидалось

				
			

Заключение

Детерминированные функции делают ваш код более предсказуемым, тестируемым и надежным. Избегание побочных эффектов, глобальных переменных и зависимости от внешних ресурсов способствует созданию детерминированных функций.

Тестовое задание

  1. Напишите детерминированную функцию square, которая принимает одно число и возвращает его квадрат.

  2. Напишите недетерминированную функцию getRandomItem, которая принимает массив и возвращает случайный элемент из этого массива.

Пример решения:

				
					// Задание 1
function square(num) {
  return num * num;
}

console.log(square(4)); // 16
console.log(square(5)); // 25

// Задание 2
function getRandomItem(arr) {
  const randomIndex = Math.floor(Math.random() * arr.length);
  return arr[randomIndex];
}

console.log(getRandomItem([1, 2, 3, 4, 5])); // Случайный элемент массива

				
			

Этот урок поможет вам лучше понять важность детерминированности функций и научит создавать функции, которые ведут себя предсказуемо и надежно.

logo