undefined — переменная объявлена, но значение не задано
null — «пусто» или «нет значения» по смыслу
Оба означают отсутствие значения, но по-разному
22 / 36
ITEDbootcamp
Проектирование web-сайтов
Операторы сравнения
>, <, >=, <= — больше, меньше
== и != — равенство с приведением типов
=== и !== — строгое равенство (тип не меняется)
23 / 36
ITEDbootcamp
Проектирование web-сайтов
Строгое равенство ===
Сравнивает и значение, и тип
5 === "5" даёт false; 5 == "5" даёт true
Рекомендуется использовать === и !==
24 / 36
ITEDbootcamp
Проектирование web-сайтов
Логические операторы
&& — логическое «и» (оба истинны)
|| — логическое «или» (хотя бы один истинен)
! — отрицание (не)
25 / 36
ITEDbootcamp
Проектирование web-сайтов
Приоритет операций
Умножение и деление выполняются раньше сложения и вычитания
Скобки () задают порядок явно
При сомнениях — скобки улучшают читаемость
26 / 36
ITEDbootcamp
Проектирование web-сайтов
Строгий режим "use strict"
Директива в начале файла или функции
Запрещает часть неаккуратных конструкций
Помогает избежать типичных ошибок
27 / 36
ITEDbootcamp
Проектирование web-сайтов
Преобразование типов
Строка в число: Number("42"), parseInt("42")
Число в строку: String(5) или 5 + ""
В логическом контексте: ложь — 0, "", null, undefined, false
28 / 36
ITEDbootcamp
Проектирование web-сайтов
Резюме: типы данных
number, string, boolean — основные примитивы
undefined, null — отсутствие значения
bigint — целые числа произвольной длины
symbol — уникальный идентификатор
object — объекты, массивы, функции
typeof проверяет тип; === сравнивает строго
29 / 36
ITEDbootcamp
Проектирование web-сайтов
Характеристики языка
Динамическая типизация — тип у значения, не у переменной
Интерпретируемый — код выполняется по шагам (JIT в современных движках)
Однопоточность и цикл событий (event loop) — асинхронность без блокировок
Функции первого класса — функции как значения, замыкания
Прототипная модель ООП — объекты и наследование через прототипы
Подходит для веба, сервера (Node.js), скриптов и сборки
30 / 36
ITEDbootcamp
Проектирование web-сайтов
Инструменты для работы
Редактор кода: VS Code, Sublime и др.
Консоль браузера — быстрая проверка
Документация: MDN (developer.mozilla.org)
31 / 36
ITEDbootcamp
Проектирование web-сайтов
Что дальше
Функции — повторное использование кода
Массивы и объекты — структуры данных
Циклы — перебор и повторение
32 / 36
ITEDbootcamp
Проектирование web-сайтов
Кратко: символ и BigInt
Symbol — уникальный идентификатор, не равен ни одному другому. Свой «рандомный»
строковый ключ может случайно совпасть с ключом из библиотеки или другого кода; Symbol гарантирует
уникальность на уровне движка и не конфликтует со строками. Кейсы: ключи «приватных» свойств объектов,
константы для типов, уникальные метки в библиотеках.
BigInt — целые числа произвольной длины (суффикс n: 123n). Кейсы: криптография,
точная арифметика с большими числами, идентификаторы, финансы без потери точности.
Оба типа используются в специфичных задачах; в обычной вёрстке встречаются редко.