§ 22. Основы языка JavaScript
Сайт: | Профильное обучение |
Курс: | Информатика. 11 класс (Повышенный уровень) |
Книга: | § 22. Основы языка JavaScript |
Напечатано:: | Гость |
Дата: | Четверг, 3 Июль 2025, 14:31 |
22.1. Общие сведения
JavaScript (JS) — высокоуровневый, мультипарадигменный язык программирования. То есть, JS поддерживает как объектно-ориентированное программирование, так и функциональное программирование. Состоит JavaScript из трёх частей: 1. Ядро (ECMAScript) — базовая функциональность JavaScript. 2. Объектная модель документа (Document Object Model, DOM) — средства для работы с содержимым веб-страниц. 3. Объектная модель браузера (Browser Object Model, BOM) — средства для взаимодействия с браузером. Сценарии JavaScript позволяют:
Скрипт может быть вставлен в любое место html-документа с помощью тега <script> (пример 22.1). Скрипт или ссылки на него, размещенные в заголовке html-документа, могут быть использованы для определения реакций на пользовательские события. В случае размещения скрипта или ссылки в теле html-документа, скрипт исполняется при загрузке веб-страницы и может непосредственно использоваться для формирования содержания страницы во время загрузки. Скрипт можно поместить в отдельный файл с расширением .js. Файл со скриптом может быть создан в любом редакторе кода, так же как html-файлы и css-файлы. Как правило, только простейшие скрипты помещаются в html-документ. Более сложные выделяются в отдельные файлы. Файл скрипта можно подключить к html-документу с помощью атрибута src (пример 22.2). В одном теге <script> нельзя использовать одновременно атрибут src и код внутри (пример 22.3). Синтаксис JavaScript сходен с синтаксисом языка C++ . Так же как и в С++, код JavaScript содержит синтаксические конструкции и команды, которые соответствуют определенным действиям — инструкции. Разделяются инструкции точкой с запятой. В JavaScript можно воспользоваться стандартными методами работы с диалоговыми окнами для ввода-вывода данных (пример 22.4): 1) alert() — позволяет выводить диалоговое окно с заданным сообщением и кнопкой OK. Методу передается только одна строка. Чтобы отобразить многострочное сообщение, в месте разделения строки нужно добавить \n. 2) confirm() — позволяет вывести диалоговое окно с сообщением и двумя кнопками — OK и Отмена. Метод возвращает логическую величину, значение которой зависит от того, какой выбор сделал пользователь. 3) prompt() — выводит на экран диалоговое окно, которое запрашивает у пользователя информацию. Кроме кнопок OK и Отмена в окне есть текстовое поле для ввода данных. Метод принимает два параметра: сообщение и значение, которое должно появиться в текстовом поле по умолчанию. Возвращает значение, введенное в текстовом поле, если выбрать OK. Если выбирается Отмена или окно закрывается иным образом, то возвращается null. На время показа диалогового окна выполнение кода приостанавливается и возобновляется после его закрытия. Язык JavaScript интерпретируемый, а это означает, что если в скрипте есть ошибка, то браузер просто проигнорирует ошибочный код. Выполнить отладку скрипта можно, используя специальные возможности браузера — инструменты разработки. Точный внешний вид инструментов разработки зависит от используемого браузера и его версии. В примере 22.5 рассматривается использование инструментов разработчика одного из популярных браузеров. |
Язык JavaScript вместе с HTML и CSS входит в базовый набор инструментов веб-разработчика. На JavaScript создаются приложения, которые исполняются в браузере на стороне клиента и обеспечивают интерактивность сайтов. Ограничения возможностей языка JavaScript предотвращают доступ к личной информации и препятствуют нанесению ущерба данным пользователя. Примеры ограничений JavaScript:
Пример 22.1. JavaScript в HTML-документе. 1) Размещение скрипта (метод alert() позволяет вывести какой-либо текст в диалоговом окне браузера):
2) Диалоговое окно: 3) Веб-страница после подтверждения действия в диалоговом окне: Пример 22.2. Подключение js-файла.
Пример 22.3. Использование тега <script> и атрибута src. Содержимое тега игнорируется при одновременном использовании тега и атрибута:
Можно разделить на два тега:
Если скрипт находится в отдельном js-файле, браузер загрузит скрипт отдельно и сможет хранить его в кэше (специальном месте на жестком диске компьютера, куда сохраняются ранее посещенные страницы). При этом файл будет загружаться с сервера только один раз, что экономит трафик и ускоряет загрузку страниц. Пример 22.4. Ввод-вывод данных в диалоговые окна.
1) alert() 2) prompt() 3) confirm() Пример 22.5. Использование консоли разработчика Google Chrome. Порядок работы: 1) Открыть веб-страницу в браузере. 2) Нажать клавишу F12. Откроется вкладка: 3) В консоли сообщение об ошибке выделяется красным цветом (в нашем примере это «Ошибка_здесь») и указывается номер строки кода с ошибкой. Под сообщением об ошибке находится символ |
22.2. Типы данных
В языке JavaScript определены простые и ссылочные типы данных (пример 22.6). Все ссылочные данные относятся к типу данных объект (object). Переменные в JavaScript объявляет оператор var, инициализируя их при необходимости (пример 22.7). Имена переменных в JavaScript чувствительны к регистру. Необъявленные переменные не существуют до тех пор, пока к ним не выполнено присваивание. Рекомендовано всегда объявлять переменные, вне зависимости находятся они внутри функции или в глобальном контексте. Использование необъявленных переменных непредсказуемо. Рассмотрим некоторые концепции использования простых типов данных в языке JavaScript:
JavaScript автоматически осуществляет преобразование типов при необходимости (неявно). Неявное преобразование простых типов данных:
При сравнении значений разных типов каждое из значений приводится к числу (пример 22.18). В подавляющем большинстве случаев неявное преобразование типов в JavaScript лучше избегать и при необходимости преобразования типа использовать функции преобразования (пример 22.19). |
Пример 22.6. Типы данных в JavaScript. Пример 22.7. Объявление переменных.
Пример 22.8. Динамичность типов данных в JavaScript.
Пример 22.9. Объявление чисел.
Пример 22.10. Использование в JavaScript чисел систем счисления, отличных от десятичной.
Пример 22.11. Объявление строк.
Пример 22.12. Встраивание выражения в строку.
Пример 22.13. Определение типа данных.
Пример 22.14. Использование типа bigInt.
Пример 22.15. Строковое преобразование.
Пример 22.16. Численное преобразование.
Пример 22.17. Преобразование к логическому значению.
Пример 22.18. Сравнение значений разных типов.
Пример 22.19. Функции преобразования типов и их использование. 1) В строку (String):
2) В число (Number, BigInt):
3) В логическое значение (Boolean):
|
22.3. Объекты. Методы работы с объектами
Объект как тип данных состоит из многих значений (либо простых, таких как числа и строки, либо сложных, например других объектов), которые называются свойствами объекта. Два отдельных объекта в JavaScript никогда не будут равными, даже если они имеют равный набор свойств. Объявление объекта в JavaScript: var <имя объекта> = { Рассмотрите пример 22.20. Каждый раз, когда скрипт пытается обратиться к свойству или методу значения простого типа, интерпретатор временно преобразует его в объект соответствующего типа. Временные объекты, в которые преобразуются значения примитивного типа, называют объектами обёртками. Сразу после обращения к свойству или методу объект обёртка уничтожается. Объекты обертки создаются только для значений типа number, string и boolean. Объект String будет иметь тип данных object, если он создан с помощью оператора new (пример 22.21). Описание и примеры использования некоторых стандартных методов работы с объектом String приведены в Приложении. В JavaScript для хранения упорядоченных данных используется структура данных массив — Array. Элементы массива нумеруются, начиная с нуля. Существует несколько способов объявления массива (пример 22.22). Размер массива может увеличиваться и уменьшаться в любое время. Атрибут массива length определяет общее число элементов массива. В массиве могут храниться элементы любого типа (пример 22.23). Массивы расширяют объекты, так как предусматривают специальные методы для работы с упорядоченными структурами данных. Описание и примеры использования некоторых стандартных методов работы с объектом Array приведены в Приложении. Для хранения математических констант и функции в JavaScript предназначен объект Math. Методы, с которыми работает этот объект аналогичны математическим функциям используемым в языке С++ (пример 22.24). Этот объект не работает с числами типа BigInt. Для работы с датой и временем в JavaScript используются объекты Date. Такие объекты могут быть созданы только путём вызова функции Date с использованием оператора new. Некоторые свойства объекта Date:
|
Пример 22.20. Создание объекта.
Пример 22.21. Объект String.
Пример 22.22. Способы объявления массива.
Пример 22.23. Массив элементов с различным типом данных. Определение количества элементов.
Пример 22.24. Использование методов объекта Math.
Тригонометрические функции принимают в параметрах или возвращают углы в радианах. Для преобразования радианов в градусы, нужно поделить их на величину Math.PI/180. Для преобразования в обратном направлении, нужно умножить градусы на эту же величину. Пример 22.25. Создание объекта Date.
Пример 22.26. Методы объекта Date.
|
Вопросы к параграфу
![]() |
1. Какое динамическое поведение веб-страницы реализуют с помощью языка JavaScript? 2. С синтаксисом какого языка программирования сходен синтаксис языка JavaScript? 3. Каким образом можно внедрить скрипт в html-документ? 4. В чем разница между скриптом, размещенным в заголовке html-документа, и скриптом, размещенным в теле html-документа? 5. Какие методы используются для организации ввода-вывода в диалоговые окна? В чем их различие? 6. Какое расширение имеют файлы, содержащие скрипты? 7. Какие возможности отладки скриптов имеют браузеры? 8. Какие типы данных определены в языке JavaScript? 9. Как объявляются переменные в языке JavaScript? 10. В чем заключается динамичность типов данных в языке JavaScript? 11. Какие типы данных используются для хранения чисел, строк? В чем особенности их использование? 12. В чем заключается явное и неявное преобразование типов данных? 13. Какие типы данных являются объектами в языке JavaScript? 14. К каким типам данных могут быть созданы объекты обертки? |
Упражнения
1. Напишите скрипт, который отображает диалоговое окно с сообщением: "Привет, javascript!". Слова "Привет" и "javascript!" должны отображаться на разных строках диалогового окна.
2. Напишите скрипт, после запуска которого, появится запрос: "Ваше имя?", а затем, после ввода имени и щелчка на кнопке OK, в диалоговом окне браузера методом alert() должно быть выведено имя.
3. Создайте страницу, которая сначала выводит окно с запросом: "Введите свое имя". После ввода пользователем имени на странице должно появиться окно с запросом подтверждения: "Подтвердите правильность ввода". После нажатия OK должно появиться окно приветствия: "Здравствуйте, <введенное_имя>".
4. Определите переменные s, n, f и t со значениями "Привет", 123, true, "true". При помощи оператора определения типа убедитесь, что переменные принадлежат типам: string, number, boolean. Для вывода результатов используйте функцию alert().
5. Найдите значения выражений: 5 + 3; 5 — 3; 5 * 3; 5 / 3; 5 % 3; 3 % 5; 5 + '3'; '5' — 3; 75 + 'кг'. Для вывода результатов используйте функцию alert().
6. Определите тип результата выражений. Результат запишите в таблицу:
Выражение |
9 / "3" |
"number"+1+3 |
1+3+"number" |
"4px"-3 |
null+1 |
Тип результата |
|
|
|
|
|
7. Имеется три переменные var a = 1, b = 3, c = " стульев". Сложите переменные так, чтобы в результате получилось выражение: "12 стульев". Для вывода результатов используйте функцию alert().
8. Дано:
var x = 15 * 4 + 25 - 55;
Выведите значение этого выражения в диалоговое окно. Измените выражение, расставив приоритетные скобки так, чтобы получить число -390.
9. Дано число n = 12345. Запишите каждую цифру этого числа в отдельный элемент массива a. Выведите результат.
10. Напишите функцию, которая принимает в качестве аргумента строку и удаляет из строки последовательности любых пробельных символов. Организуйте ввод и вывод.
11. Напишите функцию, которая преобразует первую букву каждого слова строки s в верхний регистр. Организуйте ввод и вывод.
12. Дана строка s. Реализуйте обрезание строки по следующему принципу: если количество символов в строке больше заданного d, то в переменную rez запишите первые d символов строки s и добавьте в конец троеточие '...'. Если количество символов в строке меньше или равно d, в переменную rez запишите содержимое переменной s без изменений.
13. Найдите гипотенузу c прямоугольного треугольника по теореме Пифагора.
Для задания величин катетов a и b используйте функцию:
Math.random() * (max - min) + min;
Для форматирования вывода используйте метод .toFixed()
Образец вывода:
14. Даны три массива цифр: [34,67,0] [14,5,36] [71,58,9]. Напишите код, объединяющий эти массивы и располагающий цифры в итоговом массиве в порядке убывания их значений через пробел.
15. Напишите скрип, который выведет в диалоговое окно день недели вашего дня рождения.
16. Напишите скрип, который выведет в диалоговое окно количество дней, оставшихся до какой-либо даты.