JavaScript. Типы данных и операторы
- Литералы
- Переменные
- Массивы
- Функции
- Объекты
Они делятся на встроенные и пользовательские (определяемые программистом).
Литералы - данные, непосредственно используемые в программе. Литералы могут быть разных типов.
- Числовые литералы: 10 2.310 2.3е+2
- Строковый литерал: 'Строковый' "Строковый"
Литералы используются в операциях присваивания:
Присваивание выполняется справа налево:
Экранирование кавычек в тексте знаком '/"'.
Переменные
Объявление переменных происходит через var, можно определять через запятую, присваивая ей значение или нет.
Тип переменной определяется по её значению. JavaScript является гибко типизированным языком в разных частях программы одна и та же переменная может иметь значения разных типов.
Для определения типа переменой существует оператор typeof();
Области видимости
Объявление с var вне функции делает переменную глобальной.
Объявление var внутри функции делает переменную локальной.
Конфликт локальных и глобальных переменных
Будет выдано 7, так как в блоке вывода фигурирует глобальная переменная.
Примечание, при объявлении можно var не писать.
Отсутвие var в функции, делает переменную конструктора.
Нестандартный пример с неожиданным выводом
Будет выведено 5, так как вызов f(3) изменил значение переменной k.
Массивы
Массивы делятся на встроенные, называемые коллекциями, и пользовательские.
Для определения пользовательского используется конструктор Array.
Элементы нумеруются с 0. Не могут быть многомерными. Но может быть массив массивов.
Методы по работе с массивами
Метод join() объединяет элементы массива в строку.
Обратный метод split() рабивает сроку на элементы массива по разделителю.
Пример
Полученный массив
Меняем значения у 0 и 1 элементов массива:
Склеим получившиеся значения:
Метод reverse()
Метод reverse() применяется для изменения порядка элементов массива на противоположный. Инициализируем массив: Упорядочим его в обратном порядке, вызвав метод reverse(), тогда новый массив будет содержать:Метод sort()
Метод sort() интерпретирует элементы массива как строковые литералы и сортируем массив в алфавитном (лексикографическом) порядке. Метод sort() меняет массив. В предыдущем примере, применив a.sort, получим: Если необходимо отсортировать числа, в функцию sort() добавляется необязательный аргумент, являющийся именем функции, удовлетворяющей следующим требованиям:- у нее должно быть два аргумента
- она должна возвращать число
- если первый аргумент функции должен считаться меньшим (большим, равным), чем второй аргумент, то функция должна возвратить отрицательное (положительное, ноль) значение
Функция имеет вид:
Если нам необходимо сортировать числа, то мы можем использовать следующую функцию:
Для примера создадим массив \(b = new Array(10,6,300,25,18)\) и сравним результаты сортировки без аргумента и с функцией compar в качестве аргумента:
</ br>
\(Алфавитный порядок:)\) </ br>
\(10, 18, 25, 300, 6)\) </ br>
\(Числовой порядок:)\) </ br>
\(6, 10, 18, 25, 300)\) </ br>
Метод sort() понимает элементы массива как строки, но не преобразует их в строки.
Операторы
- {...}
- if ... else ...
- ()?
- while
- for
- break
- continue
- return
{...}
Фигурные скобки определяют составной оператор - блок.
Назначение - определение тела цикла, тело условного оператора или функции.
if ... else ...
Условный оператор применяется для ветвления программы по логическому условию. Есть два варианта синтаксиса:
Пример использования:
()?
Этот оператор называется условным выражением, выдает одно из двух значений в зависимости от выполнения некоторого условия. Синтаксис: Является альтернативой if...else... . Следующие примеры равносильны:while
Оператор while задает цикл. Определяется следующим образом: Формально, цикл while работает следующим образом:- проверяется условие_продолжения цикла:
- если оно ложно (false), цикл закончен,
- если же оно истинно (true), продолжаем далее
- выполняем тело_цикла;
- переходим к п.1.
for
Оператор for - оператор цикла. Он имеет вид: Цикл работает следующим образом:- выполняется инициализация_переменных_цикла;
- проверяется условие_продолжения цикла:
- если оно ложно (false), цикл закончен,
- если же оно истинно (true), продолжаем далее
- выполняем тело_цикла;
- выполняется модификация_переменных_цикла
- переходим к п.1.
Комментарии
Отправить комментарий