Главная страница » JavaScript » 20. Неизменяемость примитивных типов
В JavaScript существует два основных типа данных: примитивные типы и объекты. Примитивные типы данных (такие как числа, строки, булевы значения, null
, undefined
, symbol
, и bigint
) являются неизменяемыми (immutable). Это означает, что их значения нельзя изменить после создания. В этом уроке мы рассмотрим, что такое неизменяемость примитивных типов, почему она важна и как это влияет на работу с данными.
Основные концепции
Что такое неизменяемость:
let str = 'Hello';
str[0] = 'h'; // Попытка изменить строку
console.log(str); // Output: 'Hello' (строка не изменилась)
Примеры примитивных типов данных:
Неизменяемость строк:
Строки в JavaScript являются неизменяемыми. Любое изменение строки создает новую строку.
Пример:
let greeting = 'Hello';
let newGreeting = greeting + ' World';
console.log(newGreeting); // Output: 'Hello World'
console.log(greeting); // Output: 'Hello' (исходная строка не изменилась)
Неизменяемость чисел:
Числа также являются неизменяемыми. Операции с числами создают новые значения.
Пример:
let x = 10;
let y = x + 5;
console.log(x); // Output: 10 (исходное значение не изменилось)
console.log(y); // Output: 15 (создано новое значение)
Передача примитивных типов по значению:
Примитивные типы передаются по значению, что означает копирование значения при присвоении переменной или передаче в функцию.
Пример:
let a = 5;
let b = a; // b получает копию значения a
b = 10;
console.log(a); // Output: 5 (a не изменилось)
console.log(b); // Output: 10
Работа с числами:
let num1 = 20;
let num2 = num1 * 2;
console.log(num1); // Output: 20 (исходное значение не изменилось)
console.log(num2); // Output: 40 (создано новое значение)
Работа со строками:
let text = 'JavaScript';
let upperText = text.toUpperCase();
console.log(text); // Output: 'JavaScript' (исходное значение не изменилось)
console.log(upperText); // Output: 'JAVASCRIPT' (создано новое значение)
Работа с булевыми значениями:
let isTrue = true;
let isFalse = !isTrue;
console.log(isTrue); // Output: true (исходное значение не изменилось)
console.log(isFalse); // Output: false (создано новое значение)
Попытка изменить примитивное значение:
Примитивные значения нельзя изменять напрямую. Любые операции с ними создают новые значения.
let num = 10;
num = num + 5; // Создано новое значение, старое не изменилось
console.log(num); // Output: 15
Путаница с неизменяемостью строк:
Изменение строки приводит к созданию новой строки, а не изменению исходной.
let originalString = 'Hello';
let modifiedString = originalString.replace('H', 'h');
console.log(originalString); // Output: 'Hello' (исходная строка не изменилась)
console.log(modifiedString); // Output: 'hello' (создано новое значение)
Понимание неизменяемости примитивных типов данных в JavaScript является важным аспектом для написания предсказуемого и надежного кода. Неизменяемость обеспечивает безопасность и стабильность данных, избегая неожиданных изменений и ошибок.
Number
и выполните с ней арифметическую операцию. Проверьте, что исходное значение не изменилось.String
и выполните с ней операцию изменения (например, добавьте к строке другой текст). Проверьте, что исходное значение не изменилось.Boolean
и выполните с ней логическую операцию. Проверьте, что исходное значение не изменилось.Пример решения:
// Задание 1
let initialNumber = 10;
let newNumber = initialNumber + 5;
console.log(initialNumber); // Output: 10 (исходное значение не изменилось)
console.log(newNumber); // Output: 15 (создано новое значение)
// Задание 2
let initialString = 'Hello';
let newString = initialString + ' World';
console.log(initialString); // Output: 'Hello' (исходное значение не изменилось)
console.log(newString); // Output: 'Hello World' (создано новое значение)
// Задание 3
let initialBoolean = true;
let newBoolean = !initialBoolean;
console.log(initialBoolean); // Output: true (исходное значение не изменилось)
console.log(newBoolean); // Output: false (создано новое значение)
// Задание 4
let original = 42;
let copy = original;
copy = 100;
console.log(original); // Output: 42 (исходное значение не изменилось)
console.log(copy); // Output: 100 (создано новое значение)
Этот урок поможет вам лучше понять неизменяемость примитивных типов в JavaScript и научиться эффективно использовать это знание при работе с данными.
Наша цель и главная задача сделать качественное образование в вашем браузере
Телефон: +375 33 910-08-92
Email: info@codefor.tech
Адрес: г. Барановичи, ул. Пирогова, д. 7
© 2024 Все права защищены. CodeFor.