- •Федеральное государственное учреждение
- •©Российская таможенная академия, 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]
- •Основы программирования
Порядок вычисления выражения
Порядок выполнения операций в языках программирования определяется скобками, а в их отсутствии – правилами старшинства операций:
Старшие операции выполняются раньше младших.
Операции одного старшинства выполняются слева направо, кроме операций присваивания, которые выполняются справа налево.
Для разных языков определения старшинства операций несколько различаются. В языке JScript они задаются следующей таблицей.
Старшинство операций убывает от верхней строки таблицы к нижней. Операции в одной строке имеют одинаковое старшинство.
|
Операции |
Описание |
|
. [] () |
Операции выборки и скобки функций |
|
++ -- - ~ ! typeof new delete void |
Унарные операции, операции определения типа, создания и уничтожения объекта, выдачи неопределённого значения |
|
* / % |
Умножение и операции деления |
|
+ - |
Сложение, вычитание, конкатенация |
|
<< >> >>> |
Операции сдвига |
|
< <= > >= |
Меньше, меньше или равно, больше, больше или равно |
|
== != === !== |
Равно, не равно, тождественно, не тождественно |
|
& |
Поразрядное AND |
|
^ |
Поразрядное XOR |
|
| |
Поразрядное OR |
|
&& |
Логическое AND |
|
|| |
Логическое OR |
|
?: |
Условная операция |
|
= OP= |
Присваивание, присваивание с операцией OP |
|
, |
Кратное вычисление |
Операции присваивания
Операция присваивания может создавать и выражение, и оператор присваивания. Любая операция присваивания вычисляет значение некоторого выражения и присваивает его либо переменной, либо свойству какого-то объекта, либо элементу какого-то массива. То, чему присваивается значение, называется получателем. Получатель в операторе присваивания может иметь следующий вид:
переменная;
массив[индекс], где массив и индекс – произвольные выражения, дающие массив (т.е. его адрес) и индекс его элемента, соответственно;
объект.свойство, где объект – произвольное выражение, дающее объект (т.е. его адрес), а свойство – произвольное имя.
Основной операцией присваивания является =. Она имеет вид
получатель = выражение
и определяется следующим образом.
переменная = выражение
Значение выражения становится значением переменной и самой операции =.
Примеры:
v=1+2; v=v+2
v сначала присваивается число 3, а потом 5.
x=(v=5)+2
сначала выполняется v=5, а затем x=7.
массив[индекс]= выражение
Сначала вычисляется массив, затем индекс, затем выражение справа от знака =. Потом элементу найденного массива, имеющему вычисленный индекс, присваивается значение выражения. Адрес дескриптора изменённого массива не меняется.
Если значение выражения массив не является массивом или значение индекса не является неотрицательным целым числом (и не приводится к нему), то присваивания не происходит и программа работает дальше.
Если найденный целочисленный индекс больше, чем индекс последнего элемента массива, то к массиву добавляется нужное количество элементов (при этом массив ссылок на элементы переписывается на новое место). Все добавленные элементы, кроме последнего, получают значение undefined. Последний элемент получает значение выражения. Адрес дескриптора не меняется.
Примеры:
А=[1,2,3]; А[1]=5
Значением переменной А становится массив [1,5,3].
А=[1,2]; В=А; А[1]=0
Значением переменных А и В становится один и тот же массив [1,0].
А=[1,2]; А[4]=0
Значением переменной А становится массив [1,2,,,0].
объект.имя = выражение
Сначала вычисляется объект, затем выражение справа от знака =. Потом свойству найденного объекта, имеющему указанное имя, присваивается значение выражения.
Если у объекта не было свойства с этим именем, оно добавляется. Адрес дескриптора изменённого объекта не меняется, а массив свойств переносится на новое место.
Если значение выражения объект не является объектом, то присваивания не происходит и программа работает дальше.
Примеры:
А={а:1,b:[2,3]};
A.b[1] = "кот"
Адрес объекта, являющийся значением переменной А, не меняется, но сам объект станет равным {а:1,b:[2,"кот"]}.
А={а:1,b:2}; А=В
В.с = "кот"
Значением переменных А и В станет один и тот же объект
{а:1,b:2,с:"кот"}
Остальные операции присваивания определяются через операцию =, как показано в таблице, где х – произвольный получатель, а y – произвольное выражение:
|
Операция |
Смысл операции |
|
x += y |
x = x+y |
|
x -= y |
x = x-y |
|
x *= y |
x = x*y |
|
x /= y |
x = x/y |
|
x %= y |
x = x%y |
|
x <<= y |
x = x<<y |
|
x >>= y |
x = x>>y |
|
x >>>= y |
x = x>>>y |
|
x &= y |
x = x&y |
|
x |= y |
x = x|y |
|
x ^= y |
x = x^y |
|
++x |
x = x+1 |
|
x++ |
x = x+1; x-1 т.е., значение xувеличивается на 1, а выдаётся старое значениеx |
|
--x |
x = x-1 |
|
x-- |
x = x-1; x+1 т.е., значение xуменьшается на 1, а выдаётся старое значениеx |
