Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
веб 5лаб.docx
Скачиваний:
0
Добавлен:
23.06.2025
Размер:
66.4 Кб
Скачать

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

Примитивные (передаются по значению):

  1. number — числа: 10, 3.14.

  2. string — строки: "Привет".

  3. boolean — true/false.

  4. null — явное "ничего".

  5. undefined — значение не определено.

  6. symbol — уникальный идентификатор (ES6).

  7. 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;

Отличия от обычных функций:

  1. Нет своего this (берут из внешней функции):

javascript

Copy

Download

const obj = {

name: "Аня",

say: () => console.log(this.name), // undefined

say2() { console.log(this.name); } // "Аня"

};

  1. Нельзя использовать как конструктор (нет new).

  2. Нет arguments (используйте остаточные параметры ...args).

  3. Короткий синтаксис для однострочных выражений.

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").

  • Значения могут быть любого типа (даже другими объектами).

Итог для зачета

Соседние файлы в предмете Web технологии