- •Федеральное государственное учреждение
- •©Российская таможенная академия, 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]
- •Основы программирования
Строковые операции
Операция |
Результат |
Примеры |
строка1+строка2 |
Конкатенация– соединение двух строк в одну |
"лист" + "5" даёт строкулист5 "лист " + "5" даёт строкулист 5 |
Эта операция применяется, когда значение хотя бы одного её операнда не является числом, или логическим значением, или null. При этом делается попытка привести значения операндов к строкам. Так, выражение "лист" + 5 даёт строку лист5, т.е. число 5 приводится к строке "5". Более сложных случаев лучше избегать.
Логические операции
Логические операции (см.таблицу), в основном, используются для задания сложных условий. Они выполняются над логическими значениями (true и false) и дают в результате логическое значение. Операнды этих операций, не являющиеся логическими значениями, приводятся к таковым по правилу:
К false приводятся значения 0, "", null, NaN и undefined. Остальные значения приводятся к true.
Операция |
Название |
Результат |
!выражение |
НЕ, NOT (отрицание) |
Выдаёт значение true, если значение операнда может быть приведено кfalse. В противном случае выдаётся значениеfalse. |
выраж1&&выраж2 |
И,AND (логическое произведение) |
Выдаёт значение первого операнда, если оно может быть приведено к false. В противном случае выдаётся значение второго операнда. |
выраж1||выраж2 |
ИЛИ, OR (логическая сумма) |
Выдаёт значение первого операнда, если оно может быть приведено к true. В противном случае выдаётся значение второго операнда. |
Операции сравнения
Операция |
Результат |
Примеры, когда выдаётся true |
знач1==знач2 (равно) |
Результат равен true, если операнды равны друг другу. Если значения имеют разные типы, выполняется приведение. |
3==1+2 3=="3" 3==['3'] 3==[1+2] |
знач1===знач2 (тождественно) |
Результат равен true, если операнды одного типа и равны друг другу. Приведение не выполняется. |
3===1+2 "31"==="3"+"1" x=[1]; y=x; x===y |
знач1!=знач2 (не равно) |
Результат равен true, если операнды не равны друг другу. Если значения имеют разные типы, выполняется приведение. |
3!=2+2 3 != '1'+2 [3] != [3] |
знач1!==знач2 (не тождественно) |
Результат равен true, если операнды одного типа и не равны друг другу. Приведение не выполняется. |
3 !== "3" "3" !== "3"+"1" x=[1]; y=[1]; x!==y |
знач1<знач2 (меньше, перед) |
Результат может быть trueтолько при сравнении чисел и строк. При сравнении строки и числа строка приводится к числу. Для остальных типов делается попытка преобразования к числам. |
2<3 'ab'<'ba' 'a'<'aa' 'abc'<'ac' 2<"3" "2"<3 |
знач1>знач2 (больше, после) |
Результат такой же, как для выражения знач2<знач1 |
|
знач1<=знач2 (меньше или равно) |
Результат такой же, как для выражения !(знач1>знач2) |
|
знач1>=знач2 (больше или равно) |
Результат такой же, как для выражения !(знач2<знач1) |
|
При любом сравнении двух значений (равно, не равно, меньше, больше и т.п.) в языке JavaScript результат принимает логическое значение true или false.
Сравнение чисел происходит так же, как в математике. При сравнении строк сравниваются числовые коды символов по порядку слева направо (равными могут быть только одинаковые строки). Порядок (перед, после) строк определяется, как в словаре. Коды символов (на самом деле важен лишь порядок символов в алфавите) можно посмотреть и в программе Таблица символов Windows, и в меню Вставка/Символ любой программы из MS Office. При сравнении массивов сравниваются их адреса, т.е. имеет смысл только сравнение равно – не равно. Так же происходит и сравнение записей и других объектов.
При сравнении значений разных типов некоторые операции сравнения пытаются привести операнды к сравнимым значениям, например, к числу или строке. Так, массив [1] приводится к числу 1 или строке "1". Во избежание лишних проблем не следует слишком надеяться на автоматическое приведение, лучше использовать специальные функции приведения, имеющиеся в языке (п. 12).