Пример ответа
Коротко: В JavaScript я работаю с примитивными типами данных (string, number, boolean, null, undefined, symbol, bigint) и ссылочными типами (object, array, function).
Ключевые идеи:
- Примитивные типы хранятся по значению и неизменяемы, включая string, number, boolean, null, undefined, symbol и bigint.
- Ссылочные типы (object, array, function) хранятся по ссылке, изменяемы и поддерживают сложные структуры данных.
- Динамическая типизация JavaScript позволяет автоматическое преобразование типов, что требует внимания при сравнениях и операциях.
Пример: Например, при сравнении '5' == 5 возвращается true из-за неявного преобразования, а '5' === 5 — false, так как строго проверяются тип и значение.
Пример объявления и использования различных типов данных в JavaScript
javascript
// Примитивные типы
let name = 'Alice'; // string
let age = 30; // number
let isActive = true; // boolean
let empty = null; // null
let notDefined; // undefined
let id = Symbol('id'); // symbol
let bigNumber = 9007199254740991n; // bigint
// Ссылочные типы
let user = { name: 'Bob', age: 25 }; // object
let colors = ['red', 'green', 'blue']; // array
function greet() { return 'Hello!'; } // function
// Проверка типов
console.log(typeof name); // 'string'
console.log(typeof age); // 'number'
console.log(typeof user); // 'object'
console.log(Array.isArray(colors)); // true
console.log(typeof greet); // 'function'
Вопросы для интервьюера:
- Как вы проверяете тип данных для массивов и null в JavaScript? — Для массивов использую Array.isArray(), а для null — строгое сравнение (value === null), так как typeof null возвращает 'object'.
- Какие особенности bigint и symbol вы использовали в проектах? — Bigint применял для работы с большими числами в финансовых расчётах, а Symbol — для создания уникальных ключей в объектах, избегая конфликтов.
Практический совет (на неделю):
- Используйте строгое сравнение (===) вместо нестрогого (==) для избежания неожиданных преобразований типов.
- Практикуйтесь с typeof и instanceof для отладки типов в сложных приложениях, особенно при интеграции с API.
Frontend Developer
Общий
17%