
- •1. Что такое ecmaScript?
- •2. Что такое типизация и какую типизацию использует JavaScript?
- •3. Типы данных в JavaScript
- •5. Стрелочные функции
- •6. Объекты в JavaScript
- •Вопросы для оценки самостоятельной работы:
- •2. Добавление / удаление классов:
- •Управление формой:
- •Создание формы:
- •Валидация email:
1. Что такое ecmaScript?
ECMAScript (ES) — это стандарт, на котором основан JavaScript. Это "спецификация" языка, которая определяет:
Синтаксис (например, if, for, function).
Типы данных (number, string, object).
Встроенные объекты (Array, Date, Math).
Правила выполнения кода.
JavaScript — это реализация ECMAScript с дополнительными возможностями (например, работа с DOM в браузере).
Версии ECMAScript:
ES5 (2009): strict mode, JSON.
ES6 (2015): let/const, стрелочные функции, классы.
ES2020+: ?. (опциональная цепочка), ?? (оператор нулевого слияния).
2. Что такое типизация и какую типизацию использует JavaScript?
Типизация — это способ определения типов данных в языке программирования.
JavaScript использует:
Динамическую типизацию — тип переменной определяется в момент выполнения и может меняться:
javascript
Copy
Download
let x = 10; // number
x = "текст"; // string
Слабую (нестрогую) типизацию — неявное приведение типов:
javascript
Copy
Download
"5" + 2 = "52" // число преобразуется в строку
Отличие от статической типизации (TypeScript, Java):
typescript
Copy
Download
let x: number = 10; // Ошибка, если присвоить строку
3. Типы данных в JavaScript
Примитивные (передаются по значению):
number — числа: 10, 3.14.
string — строки: "Привет".
boolean — true/false.
null — явное "ничего".
undefined — значение не определено.
symbol — уникальный идентификатор (ES6).
bigint — большие числа (ES2020).
Объектные (передаются по ссылке):
object — коллекции свойств: { name: "Аня" }.
array — массивы: [1, 2, 3].
function — функции.
Проверка типа:
javascript
Copy
Download
typeof 10; // "number"
typeof [1, 2]; // "object" (для массивов!)
Array.isArray([1, 2]); // true
4. Отличие let от var
Критерий |
var |
let (ES6) |
Область видимости |
Функция или глобально |
Блок ({}) |
Поднятие (hoisting) |
Да (undefined) |
Да (но ошибка при обращении до объявления) |
Переопределение |
Можно (var x; var x;) |
Нельзя (SyntaxError) |
Пример:
javascript
Copy
Download
if (true) {
var a = 10; // Видно вне блока
let b = 20; // Только внутри if
}
console.log(a); // 10
console.log(b); // Ошибка
5. Стрелочные функции
Определение:
javascript
Copy
Download
const sum = (a, b) => a + b;
Отличия от обычных функций:
Нет своего this (берут из внешней функции):
javascript
Copy
Download
const obj = {
name: "Аня",
say: () => console.log(this.name), // undefined
say2() { console.log(this.name); } // "Аня"
};
Нельзя использовать как конструктор (нет new).
Нет arguments (используйте остаточные параметры ...args).
Короткий синтаксис для однострочных выражений.
6. Объекты в JavaScript
Объект — это коллекция пар ключ-значение.
Создание:
javascript
Copy
Download
const user = {
name: "Аня", // Свойство
age: 25,
sayHi() { // Метод
console.log(`Привет, я ${this.name}`);
}
};
Добавление свойств/методов:
javascript
Copy
Download
user.isAdmin = true; // Добавить свойство
user.sayBye = function() { // Добавить метод
console.log("Пока!");
};
Доступ:
javascript
Copy
Download
user.name; // "Аня"
user["name"]; // Так тоже можно
user.sayHi(); // Вызов метода
Особенности:
Ключи всегда строки (даже user[1] преобразуется в "1").
Значения могут быть любого типа (даже другими объектами).
Итог для зачета