Есть набор символов, которые лежат в массиве: let myarr = ['а','б','в','г','д','е','ё','ж']; Нам нужно создать такую функцию при помощи JavaScript, чтобы она могла принимать этот набор символов и нужную длину слова. На выходе функция должна возвращать случайное слово. Решение задачи Нам нужна внутренняя функция, которая будет возвращать из передаваемого массива […]
JS
Зачем переписывать детей HTML-элемента в DOM? Речь идёт о перемене мест детей между друг другом или полная их замена. У нас есть какой-то HTML-элемент на странице в браузере. У этого элемента есть несколько детей одного типа. Для простоты восприятия, представьте себе таблицу у которой есть столбцы и записи. Так вот, […]
Если не выполняются команды из редактора в веб-интерфейсе pgAdmin 4, то вероятнее всего исчерпаны все свободные подключения клиентов для СУБД PostgreSQL. Куда смотреть? В первую очередь нужно заглянуть на главную панель pgAdmin 4 у нужной базы данных. Раскрываем слева меню напротив нужного сервера. Выбираем нужную базу данных по имени. […]
У нас есть строка: let str = `йц3уке рпар фыв3йцу иа яы1у й1ыс ыв4 аватц` Мы хотим удалить из этой строки символы «й«, «3» и «ц«. Как это сделать? Удаление определённых символов строки через регулярное выражение в JavaScript Мы можем литерально записать наше регулярное выражение и передать его в […]
Работая с данными, в какой-то момент понимаешь, что не всё можно представить в виде линейной информации. Например, если мы говорим о текстах, то это обычные строки JavaScript. Что я имею ввиду? Смысл строк в том, что есть какой-то символ(или символы) и есть какая-то определённая последовательность этих символов. По сути, это […]
По стандарту HTML мы знаем, что в браузере можно рисовать любую графику. За это рисование отвечает HTML-элемент canvas. Для манипулирования с пикселями, текстами, линиями и путями мы используем JavaScript. Холст canvas представляет собой некоторое пиксельное пространство на котором размещаются «контексты рисования». По сути все изображения состоят из разных «контекстов рисования». […]
Что такое массив из массивов? Если смотреть на задачу со стороны визуализации, то массив из массивов представляет собой таблицу со столбцами и записями. Поэтому когда мы хотим перевернуть массив из массивов на девяносто градусов, то фактически мы хотим наклонить таблицу в правую или левую сторону — повернуть по часовой стрелке […]
Мы работаем с HTML-страницей в браузере и хотели бы в HTML-элементе «canvas» нарисовать красную линию, которая расположена диагонально относительно самого блока холста. Как это сделать? Для создания объектов мы используем язык JavaScript и интерфейсы объектной модели документа DOM. Пример HTML-файла с JavaScript кодом, который рисует красную диагональную линию на […]
Как найти пересечение между двумя массивами JavaScript? У нас есть два массива с уникальными наборами чисел: let arr1 = [1,2,3,4,5,6]; let arr2 = [4,5,6,7,8,9]; В каждом массиве число встречается ровно 1 раз. Мы хотим получить такие числа, которые есть и в первом массиве и во втором. Как это сделать? […]
Как вызывать функцию, в теле которой есть ключевое слово this, в контексте какого-то объекта? Обычно функции, которые используют ключевое слово this можно встретить при создании класса в JavaScript. Это распространённая практика. При описании класса просто невозможно не использовать this. Классы для того и создают, чтобы из них рождались какие-то объекты. […]
Когда мы говорим о HTML в контексте JavaScript, то подразумеваем объекты, которые описывают HTML-элементы. Такое описание называется объектной моделью документа — DOM (Document Object Model). Когда мы говорим о CSS в контексте JavaScript, то подразумеваем объекты, которые описывают CSS-таблицы. Такое описание называется объектной моделью каскадных таблиц стилей — CSSOM (Cascading […]
У нас есть простой документ со скриптом, в котором мы создали HTML-элемент textarea силами JavaScript: <script> let te = document.createElement(‘textarea’); te.setAttribute(‘id’, ‘te’); let h1 = document.getElementsByTagName(‘h1’)[0]; h1.after(te); </script> Созданный […]
Скрипт создания HTML-элемента textarea и добавление его в текущий документ после заголовка h1 <script> let te = document.createElement(‘textarea’); te.setAttribute(‘id’, ‘te’); let h1 = document.getElementsByTagName(‘h1’)[0]; h1.after(te); </script> Сначала мы обращаемся […]
Есть два объекта: let obj1 = {a:1}; let obj2 = {}; Мы хотим проверить эти объекты на пустоту. Как это сделать? Как проверить, что объект пустой и у него нет свойств? Под словом «пустой» мы подразумеваем такой объект, в котором нет ключей и значений — то есть нет свойств. […]
Когда браузер получает строку с HTML-разметкой с сервера, тогда он пытается построить объектную модель документа — «DOM«. Нетрудно догадаться, что этот процесс будет занимать некоторое время. Чем больше HTML-разметка и чем глубже вложенность HTML-элементов друг в друга, тем дольше браузер будет строить объект DOM-документа. На задержку также влияет количество подключаемых скриптов […]
Экземпляры String — это экзотические объекты String, для которых заданы внутренние методы. Экземпляры String наследуют свойства от объекта-прототипа String. У экземпляров String также есть внутренний слот [[StringData]]. Экземпляры String имеют свойство «length» и набор перечислимых свойств с именами, индексируемыми целыми числами. Получение длины строки в JavaScript Так как в […]
Посмотрите внимательно на функцию в JavaScript: // Ветвление в блоке try/catch function f(qwe){ try { qwe.replace(‘3’,‘2’) console.log(‘TRY’) return 1 } catch (error) { console.log(‘CATCH’) return […]
Оглавление Приведение чисел к логическому типу Boolean Приведение строк к логическому типу Boolean Приведение массивов к логическому типу Boolean Приведение объектов к логическому типу Boolean Приведение undefined к логическому типу Boolean Приведение null к логическому типу Boolean Где автоматически срабатывает приведение к логическому типу Boolean? Приведение чисел к логическому […]
Для округления дробного числа до сотых, нужно вызвать метод toFixed(), который наследуется всеми объектами Number. Внутрь метода нужно передать один параметр — это число 2. Двойка означает два знака после запятой (в коде после точки). 0.123456.toFixed(2) '0.12' 0.6543.toFixed(2) '0.65' 0.1555.toFixed(2) '0.16' 0.155.toFixed(2) '0.15' Округление может выдавать спорные результаты, поэтому учитывайте […]
Для получения имени функции нужно обращаться к объекту arguments: function vasya(){ return arguments.callee.name }; Выражение «arguments.callee.name» вернёт нам строку ‘vasya‘. Зачем нужно получать имя функции при её вызове? Предположим у нас имеется функция, которая выполняет полезные действия. function sumABC (a,b,c){ return a […]
Давай начнём издалека, чтобы ты точно смог понять что такое this в JavaScript. Ключевые зарезервированные слова в JavaScript Во-первых, this — это зарезервированное ключевое слово в JavaScript. Это значит, что им нельзя называть переменные или функции. Когда «среда выполнения кода» доходит до слова this в твоём коде, тогда она […]
В JavaScript всё является объектами. Любой объект в JavaScript по цепочке прототипов приходит к «Глобальному Объекту» языка. Это самый верхний уровень видимости элементов. У «Глобального Объекта» JavaScript есть свои собственные свойства-конструкторы. Одним из таких свойств является объект Math. Math — это специальный математический класс (объект), который предлагает базовый функционал для […]
Задача заключается в отборе строк, где искомая словоформа может быть в начале строки, в середине, а также в конце строки (предложения). В этой публикации мы будем говорить о словоформах слов на русском языке. Языковая привязка очень важна. От неё зависят наборы символов, по которым нужно сопоставлять строки. Вводные данные […]
У нас есть объект с тремя свойствами, где одно свойство имеет значение null: let obj = {qwe:1, asd:null, zxc:3}; Ключ с именем «asd» имеет значение null. В нашей задаче ключ «asd» не интересен и мы хотели бы его выбросить из итоговой обработки объекта. Для начала мы […]
Строчные буквы русского алфавита (33 буквы) Массив ["а","б","в","г","д","е","ё","ж","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ъ","ы","ь","э","ю","я"] Строка "абвгдеёжзийклмнопрстуфхцчшщъыьэюя" "а,б,в,г,д,е,ё,ж,з,и,й,к,л,м,н,о,п,р,с,т,у,ф,х,ц,ч,ш,щ,ъ,ы,ь,э,ю,я" Символьные коды строчных букв русского алфавита Массив [1072, 1073, 1074, 1075, 1076, 1077, 1105, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, […]
Этот метод интерпретирует значение String как последовательность кодовых точек в кодировке UTF-16, как описано в пункте 6.1.4. Выполняет следующие шаги при вызове: 1. Пусть О будет ? RequireObjectCoercible(значение this). 2. Пусть S будет ? ToString(O). 3. Пусть sText будет ! StringToCodePoints(S). 4. Пусть lowerText будет результатом toLowercase(sText) в соответствии с […]
У нас есть строка: let stroka = `МОЙxqКРАСИВЫЙxwКРАЙxrПРИВЛЕКАЕТxtТУРИСТОВ!` Мы видим, что между русскими словами установлены латинские символы, которые в данном примере выступают в качестве разделителя. Мы видим что сами разделители имеют некую логичность в своём именовании. Все разделители начинаются на латинскую букву «x». Длина разделителя составляет 2 символа. Очевидно мы […]
Есть ли символ в строке JavaScript? Представим такую строку: let stroka = 'qwerty' Как нам узнать, входит ли символ «w» в нашу строку? Как получить логическое значение (true или false) существования символа «w» в строке «qwerty» при помощи JavaScript? Решение Все экземпляры класса String наследуют от своего прототипа метод […]
У нас есть примитивная таблица в HTML-разметке (скопируй код себе, чтобы потренироваться): <!DOCTYPE html> <html lang=«en»> <head> <meta charset=«UTF-8»> <meta http-equiv=«X-UA-Compatible» content=«IE=edge»> <meta name=«viewport» content=«width=device-width, initial-scale=1.0»> <title>Document</title> </head> <body> <div align=«center»> <table> […]
Как быстро разложить цифры числа в массив? [...1750836502+''].map(Number) Это самый короткий вариант записи кода для решения данной задачи. В конкатенации у нас две одинарные кавычки, а не одна двойная. Не пропустите. Результат работы выражения: Способ разложения числа на цифры через Array.from() в JavaScript У нас есть число: let chislo […]
Когда впервые запускаешь setInterval(), то спустя несколько вызовов функции-обработчика начинаешь замечать, что setInterval() не остановится самостоятельно. Он так и будет долбить вызовы без остановки. Что делать? Прежде чем погружаться в готовое решение нужно задать себе два вопроса: От имени какого объекта контекста вызывается setInterval() ? То есть кто является this […]
У нас есть HTML-элемент, который является заголовком H1. У этого заголовка есть одна маленькая проблема. Заголовок H1 не использует CSS-свойства по автоматическому переносу строк и вместо этого разработчики запихнули в него элементы BR. В результате, когда мы пытаемся обратиться к свойству textContent, тогда мы получаем строку со слипшимися словами. Чтобы […]
У нас есть символьный код 1067. Мы не знаем что это за символ, но хотим делать по нему проверку строк. Как конвертировать один символьный код в символьную строку при помощи JavaScript? В решении задачи конвертации символьного кода нам поможет конструктор класса String и его собственный метод fromCharCode(). Код: String.fromCharCode(1067) […]
Как определить существование русского языка в строке (в тексте) при помощи JavaScript? Мы хотим по строке понимать, есть ли в ней русский текст (или символы), а также если их очень много, то приравнивать данную строку к русскому языку. Как это сделать? Мы будем отталкиваться от символов русского алфавита. Это 66 […]
Введение Изучая JavaScript, вторым по популярности выражением можно встретить console.error(). Что оно означает и зачем нужно? Если говорить простыми словами, то console.error() — это способ увидеть ошибочные места работы программы (или алгоритма). Выражение console.error() нужно только для разработчиков и оно не представляет никакой ценности для конечного пользователя, который пользуется приложением. […]
Введение Изучая JavaScript, в самом начале, в чужом коде или примерах можно часто видеть выражение console.log(). Что оно означает и зачем нужно? Если говорить простыми словами, то console.log() — это способ увидеть правильность работы программы (или алгоритма). Выражение console.log() нужно только для разработчиков и оно не представляет никакой ценности для […]
Чтобы получить ширину HTML-элемента при помощи JavaScript нужно сначала получить сам элемент в виде DOM-объекта, а потом обратиться к свойству offsetWidth. Например: Браузер нам подсказывает текущее значение размеров элемента. Вводим команду: var el = document.querySelector("#layoutPage > div.a4e4 > div:nth-child(5) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div.b5y7.b5y > div > […]
В JavaScript уже имеется большое количество встроенных Классов, которые являются свойствами ГЛОБАЛЬНОГО объекта. Ты знаешь как они называются? Если нет, то погляди хотя бы на их названия — https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-well-known-intrinsic-objects. Так ты будешь в теме. Пройдя по этой ссылке ты узнаешь, что JavaScript на самом деле работает по стандарту ECMAScript. Именно […]
Мы хотим преобразовать JavaScript-строку таким образом, чтобы полностью избавиться от экранирующих обратных слешей. Здесь точно не нужно городить цепочки из методов replace() или replaceAll(). Не переживайте, решение уже давно придумано и оно уже давно работает в браузере. Согласитесь, если браузер понимает как преобразовывать экранные JS-строки, значит вам об этом думать не […]
Запись \\\\u002F\\\\u002F означает два слеша //, как в адресе сайта. Запись \\\\u002F\\\\u002F является экранирующей, когда нужно отправить строку со скриптом с сервера на клиент.
Работа с датой и временем в JavaScript отведена специальному классу — Date. Это встроенный в стандарт ECMAScript класс, который является одним из свойств Глобального объекта. Это не какое-то там API из под полы. На среду выполнения кода возложена серьёзная задача по правильной работе этого класса и всех его методов. Чтобы […]
Напишем функцию на JavaScript, которая возвращает истину (true), если строка начинается на передаваемое в неё значение или ложь (false), если строка не начинается на передаваемое в неё значение. Мы напишем своё собственное решение, потому что в стандартном методе startsWith() есть некоторые неудобные нюансы работы. Функция будет принимать 2 параметра: Главная […]
Есть массив JavaScript: var massiv = [1,2,3,4,5,6,7,8,9,10] Мы хотим увеличить все числа в этом массиве на 100. Решение задачи — простое Чтобы решить задачу нужно использовать метод объектов-прототипов Array, который называется map(). Он ходит по каждому элементу основного массива, делает преобразования и возвращает новый массив такой же длины (с […]
Есть два массива (полный и пустой): var massiv1 = [1, 2, 3, 4, 5] // полный массив var massiv2 = [] // пустой массив На пустоту массива влияет значение его «длины». Давайте взглянем на стандарт ECMAScript, где описано это свойство у экземпляров класса Array. То есть у каждого массива […]
Есть строка: let str = 'Телефон (ERT-266252) розовый (art72378fd) 128 гигабайт ОЗУ' Мы хотим удалить всё, что находится внутри круглых скобок, но оставить сами скобки. Как это сделать? Решение Нам нужно написать шаблон регулярного выражения. /(\()(.*?)(\))/g В этом выражении работает три захвата: (\() (.*?) (\)) Первый ищет левую круглую […]
Единицы кода 0x0024, 0x0024 Символы юникода — $$ Текст замены — $ Единицы кода 0x0024, 0x0026 Символы юникода — $& Текст замены — matched Единицы кода 0x0024, 0x0060 Символы юникода — $` Текст замены — Замена — это подстрока строки str от 0 до позиции position. Единицы […]
Иногда в JavaScript возникает задача по клонированию какого-то объекта. И в этот момент не всегда ясно как это правильно нужно делать. Решение, когда объект имеет один уровень вложенности Способ № 1 — У нас есть объект, который мы хотим клонировать. Его глубина равна 1. Вложенных объектов в нём нет. […]
Код HTML-разметки с тегом script: <!DOCTYPE html> <html lang=«en»> <head> <meta charset=«UTF-8»> <meta http-equiv=«X-UA-Compatible» content=«IE=edge»> <meta name=«viewport» content=«width=device-width, initial-scale=1.0»> <title></title> </head> <body> <h1>Бегущая строка</h1> <script> let h1 = document.getElementsByTagName(‘h1’)[0]; […]
В JavaScript кусочки кода оборачиваются в функции, когда нужно сохранить именованное представление определённой логики работы участка из всей программы. В нашем случае нам нужно создать некоторый счётчик, который будет виден функцией setInterval() и функцией обратного вызова. Этот счётчик будет сам являться функцией. Итого получаем 3 функции. Решение задачи Давайте […]
У нас есть строка: let str = 'https://postgrespro.ru/docs/postgresql/9.4/xfunc-sql' Эта строка представляет собой адрес в интернете. Мы хотим получить все символы из этой строки, которые встречаются от начала до первого одинарного слеша. По сути мы хотим получить адрес главной страницы сайта. Как это сделать? Решение Нам помогут регулярные выражения и […]