Вопрос проверяет знание системы типов JavaScript, включая примитивные и ссылочные типы данных, что является фундаментом для понимания работы языка.
JavaScript является динамически типизированным языком, где тип переменной определяется значением, а не объявлением. Все типы делятся на две категории: примитивные и ссылочные (объектные).
Примитивы — это неизменяемые значения, которые хранятся непосредственно в переменной. Их 7:
Примитивы копируются по значению: при присваивании создаётся независимая копия.
let a = 10;
let b = a;
b = 20;
console.log(a); // 10 — не изменилосьОбъекты, массивы, функции — это ссылочные типы. Они хранятся в памяти, а переменная содержит ссылку на объект. При копировании копируется ссылка, а не сам объект.
let obj1 = { name: 'Alice' };
let obj2 = obj1;
obj2.name = 'Bob';
console.log(obj1.name); // 'Bob' — изменилосьДля примитивов используйте typeof, для объектов — instanceof или Object.prototype.toString.call().
typeof 'hello'; // 'string'
typeof null; // 'object' — историческая ошибка
typeof []; // 'object'Вывод: Понимание разницы между примитивами и ссылочными типами критично для избежания ошибок при копировании данных и работе с функциями. Это основа для написания предсказуемого кода на JavaScript.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию