- •Федеральное государственное учреждение
- •©Российская таможенная академия, 2008
- •Ростовский филиал
- •© Крицкий с.П.
- •Содержание
- •Введение
- •Основные понятия программирования
- •Классификация языков программирования
- •Характеристика систем программирования на языкахJavaScript/Jscript
- •Типы значений в языкеJavaScript
- •Числовые литералы и значения и их организация в памяти Литералы целых чисел
- •Литералы вещественных чисел (чисел с плавающей точкой)
- •Логические литералы и значения и их организация в памяти
- •Строковые литералы, значения и их организация в памяти
- •Массивы и их организация в памяти. Многомерные массивы, матрицы
- •Записи и их организация в памяти
- •Операции над различными типами данных
- •Арифметические операции
- •Строковые операции
- •Логические операции
- •Операции сравнения
- •Операции выборки
- •Переменные, выражения, условия Переменные
- •Выражения
- •Вызовы функций и методов
- •Порядок вычисления выражения
- •Операции присваивания
- •Автоматическое преобразование типов значений. Функции преобразования и проверки типов
- •Ввод и вывод значений
- •Понятие оператора. Простые и составные операторы. Блок-схемы программ и модулей Операторы и модули
- •Блок-схемы
- •Составные операторы (последовательность, условные). Их синтаксис, блок-схемы и правила выполнения Последовательность операторов
- •Условный операторif … else
- •Операторы цикла (while, do-while и for). Их синтаксис, блок-схемы и правила выполнения. Операторыbreakиcontinue Оператор циклаwhile
- •Операторbreak
- •Операторcontinue
- •Оператор циклаdo…while
- •Оператор циклаfor
- •Функции. Определение и вызов. Выход из функцииreturn. Массив аргументовarguments Определение функции – операторfunction
- •Выход из функции – операторreturn
- •Определение переменной – операторvar
- •Отладка программ. Трассировка, отладочная печать. Тестирование программы
- •Основные понятия объектного подхода
- •ОбъектMath, назначение, свойства, методы. Значения NaN, Infinity, null, undefined.
- •Свойства объектаMath– константы:
- •Методы объекта Math
- •Специальные константы
- •Массивы как объекты в языкеJavaScript. Конструкторы, свойства и методы массивов. Задача копирования массива вJavaScript
- •Конструктор объектов типаArray
- •Свойство объектов типаArray
- •Методы объектов типаArray
- •Типичные задачи с массивами: линейная алгебра
- •Скалярное произведение векторов
- •Произведение матриц
- •Транспонирование квадратной матрицы
- •Типичные задачи с массивами: сортировка. Сортировка вставками. Методsort
- •Сортировка вставками
- •Методsort
- •Типичные задачи с массивами: поиск. Двоичный поиск в упорядоченном массиве
- •Обработка строк. Конструкторы, свойства, методы строк
- •Конструктор объектов типаString
- •Свойство объектов типаString
- •Методы объектов типаString
- •Шаблоны и регулярные выражения. Их использование методами строк.
- •Простые шаблоны
- •Составные шаблоны
- •Пользовательский интерфейс программ. Общее понятие
- •Html-страница как средство интерфейса для программ на языкеJavaScript. Тэги и атрибутыHtml
- •ОбъектыHtml-страниц иWeb-браузера, их свойства и методы. События и их обработка Объектные модели
- •Объекты страницы
- •Объекты браузера
- •СтилиHtml-объектов. Свойства позиционирования объектов страницы
- •Таймеры, примеры использования
- •Понятие ссылочной структуры данных. Односвязный список. Запись списков с помощью литералов.
- •Понятие стека. Функции для стека
- •Двухсвязный список, его структура
- •Понятие очереди и дека, их организация
- •Понятие дерева как ссылочной структуры. Бинарные деревья. Представление дерева литералом
- •Обработка деревьев. Рекурсия
- •Обход дерева «в глубину»
- •Обход дерева «в ширину»
- •Файлы и файловая система
- •Работа с текстовыми файлами
- •Объекты типа TextStream
- •Управление файлами и папками
- •Коллекции дисков, папок и файлов
- •Технология и методология создания программ
- •Жизненный цикл программы
- •Организация процесса разработки
- •Методологии проектирования программ
- •Заключение
- •Приложение 1. Теги, атрибуты и соответствующие свойства Общая структура html-документа
- •Форматирование текста
- •Вставка графики
- •Гиперссылки и карты
- •Приложение 2. События вHtmLи их источники
- •Приложение 3. Атрибуты и свойства стилейCss
- •Приложение 4. Работа с файловой системой вJScript
- •Свойства, методы и коллекции объектов файловой системы
- •Список литературы
- •Словарь терминов
- •If (условие) оператор1 [else оператор2]
- •Основы программирования
Свойства объектаMath– константы:
Math.E е
Math.LN2 ln 2
Math.LN10 ln 10
Math.LOG2E lg2 e
Math.LOG10E lg10 e
Math.PI
Math.SQRT1_2
Math.SQRT2
Методы объекта Math
Алгебра
Math.abs(х) | х |
Math.max(х, y) наибольшее из чисел х и y
Math.min(х, y) наименьшее из чисел х и y
Math.sqrt(х)
Math.pow(х, y)
Math.exp(х) ех
Math.log(х) ln х
Тригонометрия
Math.sin(х) sin х
Math.cos(х) cos х
Math.tan(х) tg x
Math.acos(х) arccos х
Math.asin(х) arcsin х
Math.atan(х) arctg х
Math.atan2(y, х) atan(y / х)
Округление
Math.ceil(х) с избытком
Math.floor(х) с недостатком
Math.round(х) до ближайшего целого
Случайное число между 0 и 1
Math.random()
Специальные константы
Infinity специальное числовое значение «бесконечность».
Появляется при делении на 0. 1/Infinity равняется 0
NaN «не число» – значение, являющееся результатом арифметического выражения с нечисловыми операндами. Проверить, что выражение имеет такой результат, можно только функцией isNaN(выражение)
null специальное значение «никакого» типа, которое можно присваивать и сравнивать. Выдаётся, например, функцией prompt
undefined «не определено» – специальное значение «никакого» типа, которое имеет переменная или компонента составного значения, если её значение не было определено присваиванием или каким-то иным способом.
Массивы как объекты в языкеJavaScript. Конструкторы, свойства и методы массивов. Задача копирования массива вJavaScript
Массивы (объекты типа Array) состоят из элементов, доступ к которым осуществляется по номеру (индексу). Элементы могут быть любыми значениями и нумеруются, начиная с 0. Массив создаётся с помощью литералов или конструктора. При присваивании массива копируется только ссылка на него, а не сам массив.
Конструктор объектов типаArray
new Array() создаёт массив без элементов (пустой), сокращённо – []
new Array(длина) создаёт массив указанной длины
new Array(е0, е1, …, еn) создаёт массив из указанных элементов,
сокращённо – [е0, е1, …, еn]
Свойство объектов типаArray
массив.length длина (число элементов) массива (равно n +1, где n – это индекс последнего элемента).
Методы объектов типаArray
массив1.concat(массив2) конкатенация – создание нового массива соединением элементов двух заданных массивов (старые массивы сохраняются на том же месте)
массив.join([строка]) строит из элементов массива новую строку, используя строку-аргумент как разделитель элементов; если разделитель не указан, используется запятая
массив.reverse() в исходном массиве переставляет элементы в обратном порядке и возвращает ссылку на него (ссылка не меняется и старый массив не сохраняется)
массив.sort([имя функции]) в исходном массиве переставляет элементы в порядке, определяемом указанной функцией; если функция не указана, то в алфавитном порядке строк, соответствующих элементам. Возвращает ссылку на массив (ссылка не меняется и старый массив не сохраняется). Функция должна иметь два аргумента (это будут элементы массива) и выдавать 0, если порядок следования их значений безразличен, < 0, если первый аргумент должен предшествовать второму, и > 0, если второй аргумент должен предшествовать первому
массив.slice(нач_индекс [, кон_индекс]) возвращает новый массив, составленный из элементов исходного массива с начального индекса до конечного индекса, не включая его. Если конечный индекс не указан, то до конца исходного массива, включая последний элемент. Старый массив сохраняется. Метод не входит в стандарт ЕСМА.
массив.toString() элементы массива преобразуются в строки и соединяются в результирующую строку, разделённые запятыми
Как известно, в языке JavaScript нельзя создать копии массива (с другим дескриптором) с помощью одного присваивания. Для этого нужно либо в цикле переписать все элементы из одного массива в другой, либо воспользоваться методами concat или slice, которые не меняют исходных массивов:
function copyArr(a) {var b = []; for (var i = 0; i<a.length; i++) b[i] = a[i]; return b }; A = [1,2,3]; B = copyArr(A)
A = [1,2,3]; B = A.concat([])
A = [1,2,3]; B = A.slice(0)