Введение в регулярные выражения в JavaScript
Регулярные выражения — это такие команды для сложного поиска и замены (или просто поиска). Они позволяют делать очень интересные вещи, но, к сожалению, довольно тяжелы в освоении.
Существует несколько методов JavaScript для работы с регулярными выражениями. Мы начнем знакомится с ними на примере replace — вы уже знакомы с этим методом: он первым параметром принимает что менять, а вторым — на что менять. А сам метод применяется к строке, в которой производится замена:
Первым параметром этого метода можно передавать не просто строку, а . Регулярное выражение представляет собой набор команд, расположенных внутри слешей / . Эти слеши называются регулярных выражений.
Сами регулярные выражения состоят из двух типов символов: из тех, которые обозначают сами себя и из символов-команд, которые называются .
Буквы и цифры обозначают сами себя. В следующем примере мы с помощью регулярного выражения заменим букву ‘a’ на ! :
А вот точка является специальным символом и обозначает любой символ . В следующем примере мы найдем строку по такому шаблону: буква ‘x’ , затем любой символ, затем опять буква ‘x’ :
После ограничителей можно писать — команды, которые изменяют общие свойства регулярного выражения. Например, модификатор g включает режим глобального поиска и замены — без него регулярка ищет только первое совпадение, а с ним — все совпадения.
В следующем примере не указан модификатор g и регулярка найдет только первое совпадение:
А теперь регулярка найдет все совпадения:
Напишите регулярку, которая найдет строки ‘ahb’ , ‘acb’ , ‘aeb’ по шаблону: буква ‘a’ , любой символ, буква ‘b’ .
Напишите регулярку, которая найдет строки ‘abba’ , ‘adca’ , ‘abea’ по шаблону: буква ‘a’ , 2 любых символа, буква ‘a’ .
Напишите регулярку, которая найдет строки ‘abba’ и ‘abea’ , не захватив ‘adca’ .
Метод map для перебора массива в JavaScript
Дан массив с числами. Используя метод map извлеките из каждого элемента массива квадратный корень и запишите результат в новый массив.
Дан массив со строками. Используя метод map в конец значению каждого элемента массива добавьте символ ‘!’ .
Дан массив со строками. Используя метод map переверните символы каждой строки в обратном порядке.
Используя метод map преобразуйте этот массив в следующий:
Ключ элемента
Функция-коллбэк может также принимать второй параметр — в него JavaScript разместит ключ элемента массива.
Давайте посмотрим на примере. Пусть дан вот такой массив:
Давайте в конец каждого элемента запишем его порядковый номер в массиве:
let arr = [‘a’, ‘b’, ‘c’, ‘d’, ‘e’]; let result = arr.map(function(elem, index) < return elem + index; >); console.log(result); // выведет [‘a0’, ‘b1’, ‘c2’, ‘d3’, ‘e4’]
Дан массив с числами. Используя метод map запишите в каждый элемент массива значение этого элемента, умноженное на его порядковый номер в массиве.
Перебор многомерных массивов
Метод map можно использовать и для перебора многомерных массивов. Пусть, к примеру, дан вот такой массив:
Давайте переберем этот массив через map и выведем его элементы в консоль:
В результате console.log выведет [1, 2, 3] , потом [4, 5, 6] , потом [7, 8, 9] .
Как вы видите, в переменную elem попадают подмассивы. Давайте теперь применим метод map к каждому подмассиву и возведем каждый его элемент в квадрат:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; let result = arr.map(function(elem) < return elem.map(function(num) < return num * num; >); >); console.log(result);
Введение в классы и объекты в JavaScript
Сейчас мы с вами займемся изучением ООП в JavaScript. Давайте рассмотрим пример из жизни, а потом перенесем его на JavaScript.
В качестве примера возьмем автомобиль. У него есть колеса, цвет, вид кузова, объем двигателя и так далее. Кроме того, водитель может отдавать ему команды: ехать, остановится, повернуть направо, налево и тп.
Можно говорить о том, что существует некоторый автомобилей, обладающий общими свойствами (у всех есть колеса и всем им можно отдавать команды).
Конкретный автомобиль, стоящий на улице — это представитель этого класса, или, другими словами, этого класса. У всех объектов этого класса есть : количество колес, цвет, вид кузова и : ехать, остановится, повернуть направо, налево.
Другими словами сам класс — это чертеж, по которым на заводе делаются автомобили. Объект же — это сама машина, сделанная по этим чертежам.
В JavaScript класс создается с помощью ключевого слова class , за которым следует название этого класса. Давайте сделаем класс Car :
Укажем теперь в нашем чертеже, что любой автомобиль, созданный по этому чертежу, будет иметь свойство для цвета и свойство для количества топлива.
Для этого внутри класса напишем свойство color и свойство fuel :
Давайте теперь сделаем методы нашего класса. В JavaScript методы похожи на обычные функции, только объявляются без ключевого слова function .
Как уже упоминалось выше, наш автомобиль может ехать, может поворачивать, может останавливаться. Сделаем соответствующие методы в нашем классе:
Мы с вами сделали чертеж нашего автомобиля. Теперь нужно отправится на завод и сделать объект этого класса (то есть конкретный автомобиль).
В JavaScript это делается с помощью ключевого слова new , после которого пишется имя класса:
Однако, если просто создать объект класса — это ни к чему не приведет (это все равно, что, к примеру, объявить массив и никуда его не записать). Нам нужна переменная для хранения этого объекта.
Пусть эта переменная будет называться myCar — запишем в нее созданный нами объект:
После создания автомобиля можно обращаться к его свойствам. Обращение к ним происходит через точку. Давайте установим свойства нашего объекта:
let myCar = new Car; // командуем заводу сделать автомобиль myCar.color = ‘red’; // красим в красный цвет myCar.fuel = 50; // заливаем топливо
Все, наш автомобиль создан, покрашен и заправлен. Теперь мы можем отдавать ему команды через методы этого автомобиля.
Обращение к методам также происходит через точку, но, в отличие от свойства, после имени метода следует писать круглые скобки. Давайте покомандуем нашим объектом:
Введение в классы и объекты в JavaScript
Сейчас мы с вами займемся изучением ООП в JavaScript. Давайте рассмотрим пример из жизни, а потом перенесем его на JavaScript.
В качестве примера возьмем автомобиль. У него есть колеса, цвет, вид кузова, объем двигателя и так далее. Кроме того, водитель может отдавать ему команды: ехать, остановится, повернуть направо, налево и тп.
Можно говорить о том, что существует некоторый автомобилей, обладающий общими свойствами (у всех есть колеса и всем им можно отдавать команды).
Конкретный автомобиль, стоящий на улице — это представитель этого класса, или, другими словами, этого класса. У всех объектов этого класса есть : количество колес, цвет, вид кузова и : ехать, остановится, повернуть направо, налево.
Другими словами сам класс — это чертеж, по которым на заводе делаются автомобили. Объект же — это сама машина, сделанная по этим чертежам.
В JavaScript класс создается с помощью ключевого слова class , за которым следует название этого класса. Давайте сделаем класс Car :
Укажем теперь в нашем чертеже, что любой автомобиль, созданный по этому чертежу, будет иметь свойство для цвета и свойство для количества топлива.
Для этого внутри класса напишем свойство color и свойство fuel :
Давайте теперь сделаем методы нашего класса. В JavaScript методы похожи на обычные функции, только объявляются без ключевого слова function .
Как уже упоминалось выше, наш автомобиль может ехать, может поворачивать, может останавливаться. Сделаем соответствующие методы в нашем классе:
Мы с вами сделали чертеж нашего автомобиля. Теперь нужно отправится на завод и сделать объект этого класса (то есть конкретный автомобиль).
В JavaScript это делается с помощью ключевого слова new , после которого пишется имя класса:
Однако, если просто создать объект класса — это ни к чему не приведет (это все равно, что, к примеру, объявить массив и никуда его не записать). Нам нужна переменная для хранения этого объекта.
Пусть эта переменная будет называться myCar — запишем в нее созданный нами объект:
После создания автомобиля можно обращаться к его свойствам. Обращение к ним происходит через точку. Давайте установим свойства нашего объекта:
let myCar = new Car; // командуем заводу сделать автомобиль myCar.color = ‘red’; // красим в красный цвет myCar.fuel = 50; // заливаем топливо
Все, наш автомобиль создан, покрашен и заправлен. Теперь мы можем отдавать ему команды через методы этого автомобиля.
Обращение к методам также происходит через точку, но, в отличие от свойства, после имени метода следует писать круглые скобки. Давайте покомандуем нашим объектом:
Практика на функции в JavaScript
В приведенных ниже задачах вам необходимо будет написать функции. Давайте им правильные имена, отражающие их суть, а также при необходимости используйте вспомогательные функции, в том числе полученные в предыдущих заданиях.
Сделайте функцию, которая параметром будет принимать массив и возвращать сумму его элементов.
Сделайте функцию, которая параметром будет принимать число и возвращать массив его делителей.
Сделайте функцию, которая параметром будет принимать строку и возвращать массив ее символов.
Сделайте функцию, которая параметром будет принимать строку и переворачивать ее символы в обратном порядке.
Сделайте функцию, которая параметром будет принимать строку и делать заглавной первую букву этой строки.
Сделайте функцию, которая параметром будет принимать строку и делать заглавной первую букву каждого слова этой строки.
Сделайте функцию, заполняющую массив целыми числами от 1 до заданного.
Сделайте функцию, которая параметром будет принимать число и возвращать сумму его цифр.
Сделайте функцию, которая параметром будет год и проверять, високосный он или нет.
Сделайте функцию, которая параметром будет принимать секунды, а возвращать количество суток, соответствующих этим секундам.
Сделайте функцию, которая будет возвращать случайный элемент из массива.
Сделайте функцию, которая параметром будет принимать число и проверять, простое оно или нет.