Структуры данных. Числа (JavaScript)

Содержание

Слайд 2

parseInt и parseFloat Функция parseInt и ее аналог parseFloat преобразуют строку

parseInt и parseFloat

Функция parseInt и ее аналог parseFloat преобразуют строку символ

за символом, пока это возможно.
Функция parseInt читает из строки целое число, а parseFloat – дробное
Слайд 3

Округление Одна из самых частых операций с числом – округление. В

Округление

Одна из самых частых операций с числом – округление. В JavaScript

существуют целых 3 функции для этого.
Math.floor
Округляет в меньшую сторону
Math.ceil
Округляет в большую сторону
Math.round
Округляет до ближайшего целого
Слайд 4

Округление Существует также специальный метод num.toFixed(precision), который округляет число num до

Округление

Существует также специальный метод num.toFixed(precision), который округляет число num до точности

precision и возвращает результат в виде строки:
Округление идёт до ближайшего значения, аналогично Math.round
Итоговая строка, при необходимости, дополняется нулями до нужной точности:
Слайд 5

Создание строк Строки создаются при помощи двойных или одинарных кавычек: Округление

Создание строк

Строки создаются при помощи двойных или одинарных кавычек:
Округление идёт до

ближайшего значения, аналогично Math.round
Итоговая строка, при необходимости, дополняется нулями до нужной точности:
В JavaScript нет разницы между двойными и одинарными кавычками.
Слайд 6

Создание строк Строки могут содержать специальные символы. Самый часто используемый из

Создание строк

Строки могут содержать специальные символы. Самый часто используемый из таких

символов – это «перевод строки».
Есть и более редкие символы, вот их список:
Слайд 7

Методы и свойства Длина length Чтобы получить символ, используйте вызов charAt(позиция).

Методы и свойства

Длина length
Чтобы получить символ, используйте вызов charAt(позиция). Первый символ

имеет позицию 0:
Также для доступа к символу можно также использовать квадратные скобки:

Доступ к символам

Слайд 8

Методы и свойства Разница между этим способом и charAt заключается в

Методы и свойства

Разница между этим способом и charAt заключается в том,

что если символа нет – charAt выдает пустую строку, а скобки – undefined:
Методы toLowerCase() и toUpperCase() меняют регистр строки на нижний/верхний:

Смена регистра

Слайд 9

Поиск подстроки Для поиска подстроки есть метод indexOf(подстрока[, начальная_позиция]). Он возвращает

Поиск подстроки

Для поиска подстроки есть метод indexOf(подстрока[, начальная_позиция]).
Он возвращает позицию, на

которой находится подстрока или -1, если ничего не найдено. Например:
Необязательный второй аргумент позволяет искать, начиная с указанной позиции. Например, первый раз "id" появляется на позиции 1. Чтобы найти его следующее появление – запустим поиск с позиции 2:
Слайд 10

Поиск всех вхождений Чтобы найти все вхождения подстроки, нужно запустить indexOf

Поиск всех вхождений

Чтобы найти все вхождения подстроки, нужно запустить indexOf в

цикле. Как только получаем очередную позицию – начинаем следующий поиск со следующей.
Впрочем, тот же алгоритм можно записать и короче:
Слайд 11

Взятие подстроки: substr, substring. substring(start [, end]) Метод substring(start, end) возвращает

Взятие подстроки: substr, substring.

substring(start [, end])
Метод substring(start, end) возвращает подстроку с

позиции start до, но не включая end. Если аргумент end отсутствует, то идет до конца строки
substr(start [, length])
Первый аргумент имеет такой же смысл, как и в substring, а второй содержит не конечную позицию, а количество символов.
Слайд 12

Взятие подстроки: slice. slice(start [, end]) Возвращает часть строки от позиции

Взятие подстроки: slice.

slice(start [, end])
Возвращает часть строки от позиции start до,

но не включая, позиции end. Смысл параметров – такой же как в substring.
Различие между substring и slice – в том, как они работают с отрицательными и выходящими за границу строки аргументами
substring(start, end)
Отрицательные аргументы интерпретируются как равные нулю. Слишком большие значения усекаются до длины строки
Слайд 13

Операции с объектом Ассоциативный массив – структура данных, в которой можно

Операции с объектом

Ассоциативный массив – структура данных, в которой можно хранить

любые данные в формате ключ-значение.
Объект может содержать в себе любые значения, которые называются свойствами объекта. Доступ к свойствам осуществляется по имени свойства (иногда говорят «по ключу»).
Например, создадим объект person для хранения информации о человеке:

Основные операции с объектами – это создание, получение и удаление свойств.
Для обращения к свойствам используется запись «через точку», вида объект.свойство, например:

Слайд 14

Операции с объектом в JavaScript можно обратиться к любому свойству объекта,

Операции с объектом

в JavaScript можно обратиться к любому свойству объекта, даже

если его нет.
Ошибки не будет.
Но если свойство не существует, то вернется специальное значение undefined.
Таким образом мы можем легко проверить существование свойства – получив его и сравнив с undefined:
Слайд 15

Операции с объектом Доступ через квадратные скобки Существует альтернативный синтаксис работы

Операции с объектом

Доступ через квадратные скобки
Существует альтернативный синтаксис работы со свойствами,

использующий квадратные скобки объект['свойство']:
Записи person['name'] и person.name идентичны, но квадратные скобки позволяют использовать в качестве имени свойства любую строку:
Слайд 16

Операции с объектом Доступ к свойству через переменную Квадратные скобки также

Операции с объектом

Доступ к свойству через переменную
Квадратные скобки также позволяют обратиться

к свойству, имя которого хранится в переменной:
Вообще, если имя свойства хранится в переменной (var key = "age"), то единственный способ к нему обратиться – это квадратные скобки person[key].
Доступ через точку используется, если мы на этапе написания программы уже знаем название свойства. А если оно будет определено по ходу выполнения, например, введено посетителем и записано в переменную, то единственный выбор – квадратные скобки.
Слайд 17

Операции с объектом Объявление со свойствами Объект можно заполнить значениями при

Операции с объектом

Объявление со свойствами
Объект можно заполнить значениями при создании, указав

их в фигурных скобках: { ключ1: значение1, ключ2: значение2, ... }.
Такой синтаксис называется литеральным (англ. literal).
Слайд 18

Операции с объектом Названия свойств можно перечислять как в кавычках, так

Операции с объектом

Названия свойств можно перечислять как в кавычках, так и

без, если они удовлетворяют ограничениям для имён переменных.
В качестве значения можно тут
же указать и другой объект:
Слайд 19

Объекты. Проверочное задание Необходимо создать объект учебник, который будет содержать следующие

Объекты. Проверочное задание

Необходимо создать объект учебник, который будет содержать следующие данные

(подставьте свои значения):
Автор
Год издания
Количество страниц
Издательство
Предмет
Класс
Язык
Слайд 20

Объекты: перебор свойств Для перебора всех свойств из объекта используется цикл

Объекты: перебор свойств

Для перебора всех свойств из объекта используется цикл по

свойствам for..in. Эта синтаксическая конструкция отличается от рассмотренного ранее цикла for(;;).
При этом for..in последовательно
переберёт свойства объекта obj,
имя каждого свойства будет
записано в key и вызвано тело цикла.
Слайд 21

Объекты: количество свойств Как узнать, сколько свойств хранит объект? Готового метода

Объекты: количество свойств

Как узнать, сколько свойств хранит объект?
Готового метода для этого

нет.
Самый кросс-браузерный способ – это сделать цикл по свойствам и посчитать, вот так:
Слайд 22

Копирование по ссылке В переменной, которой присвоен объект, хранится не сам

Копирование по ссылке

В переменной, которой присвоен объект, хранится не сам объект,

а «адрес его места в памяти», иными словами – «ссылка» на него.
При копировании переменной с объектом – копируется эта ссылка, а объект по-прежнему остается в единственном экземпляре.
Слайд 23

Клонирование объектов В нижепоказанном коде каждое свойство объекта user копируется в

Клонирование объектов

В нижепоказанном коде каждое свойство объекта user копируется в clone.

Если предположить, что они примитивны, то каждое скопируется по значению и мы как раз получим полный клон.
Слайд 24

Массивы с числовыми индексами Массив – разновидность объекта, которая предназначена для

Массивы с числовыми индексами

Массив – разновидность объекта, которая предназначена для хранения пронумерованных

значений и предлагает дополнительные методы для удобного манипулирования такой коллекцией.
Они обычно используются для хранения упорядоченных коллекций данных, например – списка товаров на странице, студентов в группе и т.п.
Элементы нумеруются, начиная с нуля.
Чтобы получить нужный элемент из массива – указывается его номер в квадратных скобках:
Слайд 25

Массивы с числовыми индексами Элемент можно всегда заменить или добавить: Через

Массивы с числовыми индексами

Элемент можно всегда заменить или добавить:
Через alert можно

вывести и массив целиком.
При этом его элементы будут перечислены через запятую:
Слайд 26

Массивы с числовыми индексами В массиве может храниться любое число элементов любого типа.:

Массивы с числовыми индексами

В массиве может храниться любое число элементов любого

типа.:
Слайд 27

Методы pop/push pop Удаляет последний элемент из массива и возвращает его:

Методы pop/push

pop
Удаляет последний элемент из массива и возвращает его:
push
Добавляет элемент в

конец массива:
Слайд 28

Методы shift/unshift shift Удаляет из массива первый элемент и возвращает его:

Методы shift/unshift

shift
Удаляет из массива первый элемент и возвращает его:
unshift
Добавляет элемент в начало массива:

Слайд 29

Перебор элементов Для перебора элементов обычно используется цикл:

Перебор элементов

Для перебора элементов обычно используется цикл:

Слайд 30

Особенности работы length Встроенные методы для работы с массивом автоматически обновляют

Особенности работы length

Встроенные методы для работы с массивом автоматически обновляют его

длину length.
Длина length – не количество элементов массива, а последний индекс + 1.
Так уж оно устроено.
Это легко увидеть на следующем примере:
Слайд 31

Массивы Метод split Ситуация из реальной жизни. Мы пишем сервис отсылки

Массивы Метод split

Ситуация из реальной жизни. Мы пишем сервис отсылки сообщений

и посетитель вводит имена тех, кому его отправить: Маша, Петя, Марина, Василий.... Но нам-то гораздо удобнее работать с массивом имен, чем с одной строкой.
К счастью, есть метод split(s), который позволяет превратить строку в массив, разбив ее по разделителю s. В примере ниже таким разделителем является строка из запятой и пробела.
Слайд 32

Массивы Метод join Вызов arr.join(str) делает в точности противоположное split. Он

Массивы Метод join

Вызов arr.join(str) делает в точности противоположное split. Он берет

массив и склеивает его в строку, используя str как разделитель.
Слайд 33

Удаление из массива Так как массивы являются объектами, то для удаления ключа можно воспользоваться обычным delete:

Удаление из массива

Так как массивы являются объектами, то для удаления ключа

можно воспользоваться обычным delete:
Слайд 34

Метод splice Метод splice – это универсальный раскладной нож для работы

Метод splice

Метод splice – это универсальный раскладной нож для работы с

массивами. Умеет все: удалять элементы, вставлять элементы, заменять элементы – по очереди и одновременно.
arr.splice(index[, deleteCount, elem1, ..., elemN])
Удалить deleteCount элементов, начиная с номера index, а затем вставить elem1, ..., elemN на их место. Возвращает массив из удалённых элементов.Этот метод проще всего понять, рассмотрев примеры.