String методы javascript: String — JavaScript | MDN

Содержание

Обёртка String — JavaScript — Дока

Кратко

Скопировано

String — это обёртка над примитивным строковым типом, которая содержит дополнительные методы работы со строками:

  • поиска по строке;
  • строковых преобразований;
  • получения отдельных символов.

Строки автоматически оборачиваются в обёртку String при вызове методов над ними.

Как пишется

Скопировано

Обернуть строку в String можно вручную, вызвав конструктор new String():

const primitive = 'приветики'const str = new String('приветики')
          const primitive = 'приветики'
const str = new String('приветики')

В этом случае переменные primitive и str будут разных типов:

console.log(typeof primitive)// stringconsole.log(typeof str)// objectconsole.log(str == 'приветики')// true, при приведении к строке значения будут одинаковымиconsole. log(str === 'приветики')// false, потому что разные типы данных
          console.log(typeof primitive)
// string
console.log(typeof str)
// object
console.log(str == 'приветики')
// true, при приведении к строке значения будут одинаковыми
console.log(str === 'приветики')
// false, потому что разные типы данных

Если вызывать методы

String на примитиве, JavaScript автоматически обернёт его в обёртку:

const primitive = 'привет!'console.log(primitive.toUpperCase())// ПРИВЕТ!
          const primitive = 'привет!'
console.log(primitive.toUpperCase())
// ПРИВЕТ!

Как понять

Скопировано

Обычно в JavaScript работают с примитивным строковым типом. Например, const str = 'my string'.

Обёртка содержит дополнительные методы для работы со строками. Они не входят в стандарт типа данных «строка» и поэтому выделены в отдельный модуль.

Обёртка используется автоматически и не требует дополнительной работы от программиста. JavaScript сам оборачивает строку, когда программист вызывает метод, находящийся в обёртке.

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

Скопировано

Для приведения всех символов строки к нижнему регистру используется метод toLowerCase(), а для приведения к верхнему — toUpperCase():

const lowercased = 'СОБАКА'.toLowerCase()console.log(lowercased)// собакаconst uppercased = 'котик'.toUpperCase()console.log(uppercased)// КОТИК
          const lowercased = 'СОБАКА'.toLowerCase()
console.log(lowercased)
// собака
const uppercased = 'котик'.toUpperCase()
console.log(uppercased)
// КОТИК

Это пригодится для нормализации текста, чтобы сравнивать результаты текстового ввода без учёта регистра:

Открыть демо в новой вкладке

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

Скопировано

Для поиска одной строки внутри другой существует целый набор методов:

1️⃣
includes() Скопировано

includes() принимает аргументом строку, которую нужно найти. Возвращает true, если строка нашлась и false — если нет.

const phrase = 'мама мыла раму'console.log(phrase.includes('мы'))// trueconsole.log(phrase.includes('тикток'))// false
          const phrase = 'мама мыла раму'
console.log(phrase.includes('мы'))
// true
console.log(phrase.includes('тикток'))
// false
2️⃣
startsWith() Скопировано

startsWith() принимает аргументом строку, которую нужно найти. Возвращает true, если текущая строка начинается с искомой и false — если нет.

const phrase = 'папа мыл ногу'console.log(phrase.startsWith('па'))// trueconsole.log(phrase.startsWith('мыл'))// falseconsole.log(phrase.startsWith('тикток'))// false
          
const phrase = 'папа мыл ногу' console.log(phrase.startsWith('па')) // true console.log(phrase.startsWith('мыл')) // false console. log(phrase.startsWith('тикток')) // false
3️⃣
endsWith() Скопировано

endsWith() принимает аргументом строку, которую нужно найти. Возвращает true, если текущая строка заканчивается искомой и false — если нет.

const phrase = 'брат мыл яблоко'console.log(phrase.endsWith('яблоко'))// trueconsole.log(phrase.endsWith('мыл'))// falseconsole.log(phrase.endsWith('тикток'))// false
          const phrase = 'брат мыл яблоко'
console.log(phrase.endsWith('яблоко'))
// true
console.log(phrase.endsWith('мыл'))
// false
console.log(phrase.endsWith('тикток'))
// false
4️⃣
indexOf() Скопировано

indexOf() принимает аргументом строку, которую нужно найти. Возвращает индекс символа, с которого начинается искомая строка. Если искомая строка не найдена, то возвращает -1.

const phrase = 'сестра мыла посуду'console.log(phrase.indexOf('мыла'))// 7console.log(phrase.indexOf('тикток'))// -1
          const phrase = 'сестра мыла посуду'
console.log(phrase.indexOf('мыла'))
// 7
console.log(phrase.indexOf('тикток'))
// -1

Если вхождений несколько, будет возвращён индекс первого:

const phrase = 'сестра мыла посуду'console.log(phrase.indexOf('с'))// 0
          const phrase = 'сестра мыла посуду'
console.log(phrase.indexOf('с'))
// 0

Вторым аргументом методу можно передать индекс, с которого начинать поиск:

const phrase = 'сестра мыла посуду'console.log(phrase.indexOf('с', 1))// 2
          const phrase = 'сестра мыла посуду'
console.log(phrase.indexOf('с', 1))
// 2

Метод indexOf() ищет вхождение слева направо. Для поиска в обратном порядке существует зеркальный метод lastIndexOf().

Получение подстроки

Скопировано

Для решения некоторых задач необходимо отдельно обрабатывать часть строки.

Самый удобный способ получить подстроку — это метод substring(). Метод substring() копирует указанную часть строки и возвращает копию в качестве результата. Метод принимает один или два аргумента.

При вызове с двумя аргументами нужно передать индекс символа, с которого начинать копирование и индекс символа, на котором закончить. Индекс окончания не включается в копию.

const phrase = 'javascript'const substring = phrase.substring(4, 10)console.log(substring)// scriptconsole.log(phrase.substring(4, 9))// scrip
          const phrase = 'javascript'
const substring = phrase.substring(4, 10)
console. log(substring)
// script
console.log(phrase.substring(4, 9))
// scrip

Если указан только один аргумент, то результатом будет строка, начинающаяся с указанного индекса и до конца строки:

const phrase = 'javascript'console.log(phrase.substring(0, 4))// javaconsole.log(phrase.substring(1))// avascriptconsole.log(phrase.substring(4))// script
          const phrase = 'javascript'
console.log(phrase.substring(0, 4))
// java
console.log(phrase.substring(1))
// avascript
console.log(phrase.substring(4))
// script

Существуют два похожих метода — substr() и slice(). substr() — устаревший метод, который будет удалён в будущих версиях языка, не пользуйтесь им.

slice() ведёт себя идентично substring(), разница проявляется только если вызвать метод, поменяв местами индекс старта и индекс окончания копирования. В этом случае substring() поймёт, что копировать, а slice() вернёт пустую строку:

const phrase = 'javascript'console.log(phrase.substring(10, 4))// scriptconsole.log(phrase.slice(10, 4))// ''
          const phrase = 'javascript'
console.log(phrase.substring(10, 4))
// script
console.log(phrase.slice(10, 4))
// ''

🤝

Метод substring() и slice() часто используется в связке с indexOf() — сначала находится индекс начала нужной подстроки, а затем этот индекс используется в substring() как индекс начала копирования.

slice() принимает отрицательные аргументы и удобен, когда нужно получить значение с конца строки.

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

const text = 'String — это обёртка над примитивным строковым типом, которая содержит дополнительные методы работы со строками'const spoiler = text.slice(0, 5) + '...' + text.slice(-5)console.log(spoiler)// Strin...оками
          const text = 'String — это обёртка над примитивным строковым типом, которая содержит дополнительные методы работы со строками'
const spoiler = text.slice(0, 5) + '...' + text.slice(-5)
console.log(spoiler)
// Strin...оками

Деление строки на слова

Скопировано

Метод split() позволяет разбить строку на отдельные подстроки. Чаще всего это нужно, чтобы разбить строку на слова.

Метод принимает аргументом разделитель, по которому нужно делить строку на подстроки. Возвращает массив получившихся подстрок.

Например, разбить текст на слова по пробелам:

const phrase = 'London is the capital of Great Britain. 'const arr = phrase.split(' ')console.log(arr)// [ 'London', 'is', 'the', 'capital', 'of', 'Great', 'Britain.' ]
          const phrase = 'London is the capital of Great Britain.'
const arr = phrase.split(' ')
console.log(arr)
// [ 'London', 'is', 'the', 'capital', 'of', 'Great', 'Britain.' ]

Если не указать разделитель, то результатом вернётся массив из исходной строки:

const phrase = 'London is the capital of Great Britain.'console.log(phrase.split())// [ 'London is the capital of Great Britain.' ]
          const phrase = 'London is the capital of Great Britain.'
console.log(phrase.split())
// [ 'London is the capital of Great Britain.' ]

В качестве разделителя можно передавать регулярное выражение или спецсимволы:

const phrase = 'London is the\ncapital of\nGreat Britain.'console.log(phrase.split('\n'))// [ 'London is the', 'capital of', 'Great Britain.' ]
          
const phrase = 'London is the\ncapital of\nGreat Britain. ' console.log(phrase.split('\n')) // [ 'London is the', 'capital of', 'Great Britain.' ]

🔗

Склеить массив строк в одну можно методом join(), он принимает один аргумент — строку, которая будет использоваться для склейки строк. Например, склеить строки пробелами: [ 'London is the', 'capital of', 'Great Britain.' ].join(' ')

Замена подстроки

Скопировано

Для замены одной части строки на другой существует метод replace().

При вызове в него нужно передать два аргумента — какую подстроку менять и на что:

const str = 'Яблоко - вкусный овощ'const correct = str.replace('овощ', 'фрукт')console.log(correct)// Яблоко - вкусный фрукт
          const str = 'Яблоко - вкусный овощ'
const correct = str. replace('овощ', 'фрукт')
console.log(correct)
// Яблоко - вкусный фрукт

Если строка на замену не найдена, то замены не произойдёт:

const str = 'Яблоко - вкусный овощ'const notChanged = str.replace('апельсин', 'банан')console.log(notChanged)// Яблоко - вкусный овощ
          const str = 'Яблоко - вкусный овощ'
const notChanged = str.replace('апельсин', 'банан')
console.log(notChanged)
// Яблоко - вкусный овощ

Метод replace() заменяет подстроку только один раз. Чтобы заменить подстроку более одного раза, необходимо использовать регулярные выражения, циклы, либо метод replaceAll():

const str = 'Какова цена яблока? Какого яблока? Я их не продаю.'const once = str.replace('яблока', 'помидора')console.log(once)// Какова цена помидора? Какого яблока? Я их не продаю.const all = str.replaceAll('яблока', 'помидора')console.log(all)// Какова цена помидора? Какого помидора? Я их не продаю. const correct = str.replace(/яблока/g, 'помидора')console.log(correct)// Какова цена помидора? Какого помидора? Я их не продаю.
          const str = 'Какова цена яблока? Какого яблока? Я их не продаю.'
const once = str.replace('яблока', 'помидора')
console.log(once)
// Какова цена помидора? Какого яблока? Я их не продаю.
const all = str.replaceAll('яблока', 'помидора')
console.log(all)
// Какова цена помидора? Какого помидора? Я их не продаю.
const correct = str.replace(/яблока/g, 'помидора')
console.log(correct)
// Какова цена помидора? Какого помидора? Я их не продаю.

Очистка строки

Скопировано

Пользователи могут поставить лишние пробелы при вводе данных. Такие лишние пробелы могут помешать пользователю войти в систему, если их учитывать.

Для очистки строк от пробелов и символов окончания строки существует метод trim(). Он не принимает аргументов, а возвращает строку без пробелов в начале и конце строки:

const email = '    another@test. com   'console.log(email.trim())// '[email protected]'
          const email = '    [email protected]   '
console.log(email.trim())
// '[email protected]'

Если нужно удалять пробелы только в начале или только в конце строки, то есть похожие методы trimStart() и trimEnd().

На практике

Скопировано

Дока Дог советует

Скопировано

🛠 При работе с формами и вводом значений следует очищать поля ввода от замыкающих пробелов вызовом метода trim()

🛠 Для множественных замен и поиска удобнее всего пользоваться регулярными выражениями, но это отдельный микроязык, который нужно учить.

Вопросы JavaScript | JavaScript Camp

Что такое примитивные типы данных в JavaScript?​

  • Это данные, которые не являются объектом и не имеют методов
  • Примитивные: string, number, boolean, null, undefined, bigint, symbol
  • Остальные типы: object, function

Что нового привнес в JS стандарт ES6 или ECMAScript2015?​

  • Стрелочные функции
  • Классы
  • Шаблонные строки
  • Расширенные объектные литералы
  • Деструктуризация
  • Промисы
  • Генераторы
  • Модули
  • Symbol
  • Прокси
  • Множества
  • Параметры по умолчанию
  • Операторы rest и spread
  • Блочная область видимости, ключевые слова «let» и «const»

Какие значения в JS являются ложными?​

Пустая строка, 0, null, undefined, NaN, false

В чем разница между ключевыми словами «var», «let» и «const»?​

Переменные, объявленные с помощью ключевого слова «var», являются глобальными. Это означает, что они доступны из любого места в коде.Переменные, объявленные с помощью ключевых слов «let» и «const» имеют блочную область видимости.Разница между «let» и «const» состоит в том, что в первом случае мы может менять значение переменной, а во втором — нет.

Что произойдет в результате выражения var foo = 10 + «20» и почему?​

Переменная foo примет значение «1020»- В JavaScript это поведение называется приведением типов

Как быстро преобразовать строку в число?​

Можно использовать унарный плюс, он преобразует строку в число, если это возможно. Унарный минус делает тоже самое

Почему результатом сравнения двух похожих объектов является false?​

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

Как проверить, является ли значение ложным?​

Следует использовать функцию Boolean или оператор двойное отрицание

Как проверить, что число является четным, без использования деления с остатком?​

Для решения данной задачи можно использовать оператор «&» (бинарное и). Оператор «&» сравнивает операнды как бинарные значенияconst isEven = num & 1 ? false : true

Какое отличие String() от toString()?​

toString() не будет работать с undefined или null, потому что класс этих объектов не реализовывает метод toString, а поскольку String является независимым объектом, а не методом, унаследованным от прототипа, то его можно использовать с объектами, у которых нет метода toString()

Что такое шаблонные литералы?​

Шаблонные литералы — относительно новый способ создания строк в JS. Шаблонные литералы создаются с помощью двойных обратных кавычек

Что такое NaN и какова его роль?​

Это специальное значение «Not a Number», которое обычно говорит о том, что была выполнена бессмысленная операция, ошибка математической операции. Так же есть функция isNaN(), которая проверяет является ли строка не числом.

В чем разница между undefined и is not defined?​

is not defined это код ошибки при обращении к не существующей переменной. undefined — это значение, присваемое объявленной, но не инициализированной переменной.

Для чего используется оператор логическое и?​

Оператор логическое и, находит и возвращает первое ложное значение либо последний операнд, когда все значения истинные

В чем разница между атрибутами и свойствами?​

Атрибут — это начальное состояние в рендеринге DOM, а свойство — это текущее состояние.

Для чего используется оператор логическое или?​

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

Является ли использование унарного плюса самым быстрым способом преобразования строки в число?​

Согласно MDN оператор «+» действительно является самым быстрым способом преобразования строки в число, поскольку он не выполняет никаких операций со значением, которое является числом.

Что такое DOM?​

DOM или Document Object Model (объектная модель документа) — это прикладной программный интерфейс (API) для работы с HTML и XML документами.

Почему результатом сравнения двух похожих объектов является false?​

В JS объекты и примитивы сравниваются по-разному. Примитивы сравниваются по значению. Объекты — по ссылке или адресу в памяти, где хранится переменная.

Для чего используется оператор двойное отрицание?​

Оператор двойное отрицание приводит значение справа от него к логическому значению.

Как записать несколько выражений в одну строку?​

Для этого мы можем использовать оператор запятая.

Что такое область видимости (Scope)?​

Область видимости — это место, где мы имеем доступ к переменным или функциям. JS имеем три типа областей видимости: глобальная, функциональная и блочная.

Как динамически добавлять и удалять свойства в обьект?​

Вы можете добавить свойство к объекту используя, myObject.propName = value, и удалить свойство, используя delete myObject.propName.

Что делает Object.freeze()?​

Object.freeze работает со значениями объектов и делает объект неизменяемым, то есть изменить его свойства невозможно. Можно проверить заморожен ли объект с помощью Object.isFrozen().

Как можно клонировать объект?​

  • Оператор spread
  • Object assign
  • глубокое клонирование: JSON parse c JSON stringify.

Как определить наличие свойства в объекте?​

  • Оператор in
  • Метод hasOwnProperty

Как в JS создать объект?​

  • Объектный литерал
  • Функция-конструктор
  • Метод Object create.

В чем разница между оператором «in» и методом hasOwnProperty?​

Оператор «in» проверяет наличие свойства не только в самом объекте, но и в его прототипах, а метод hasOwnProperty — только в объекте.

Какие конструкции языка вы используете для обхода объектов?​

Цикл for in или Object keys и forEach.

Что такое деструктуризация объекта?​

Деструктуризация — относительно новый способ получения (извлечения) значений объекта или массива.

Что такое объект Set?​

Объект Set позволяет хранить уникальные значения.

Что такое объект Map?​

Это коллекция ключ значение, как и Object. Но основное отличие в том, что Map позволяет использовать ключи любого типа и даже объекты.

Что такое прототип?​

  • Объект, на который указывает ссылка proto, называется «прототипом»
  • При чтении свойства из объекта, если его в нём нет, оно ищется в proto
  • Операции присвоения или удаления свойства совершаются всегда над самим объектом obj.

Что такое классы?​

Классы — это относительно новый способ написания функций-конструкторов в JS. Это синтаксический сахар для функций-конструкторов. В основе классов лежат те же прототипы и прототипное наследование.

Как работает прототипное наследование?​

  • Объекты JS связаны цепочками прототипов с помощью proto свойства, по которым им передаются методы и свойства. При обращении к свойству или методу объекта сначала происходит поиск этого свойства у самого объекта. В случае неудачи поиск перенаправляется в его прототип.
  • Например, когда мы хотим прочитать свойство из object, а оно отсутствует, JavaScript автоматически берёт его из прототипа, если оно существует.

Как проверить, является ли объект массивом?​

Для этого можно использовать встроенный метод Array.isArray().

Объясните, что такое файлы cookie в JavaScript?​

  • Это данные, хранящиеся в небольших текстовых файлах на вашем компьютере
  • Куки обычно устанавливаются веб-сервером при помощи заголовка Set-Cookie
  • Один из наиболее частых случаев использования куки – это аутентификация

Для чего используются операторы break и continue в JavaScript?​

  • Break и continue обеспечивают более точный контроль над выполнением кода в цикле
  • Break завершает текущую итерацию и приводит к немедленному выходу из цикла
  • Continue завершает текущую итерацию, но не останавливает цикл
  • Return работает так же как и break и вдобавок может вернуть с функции значение остановив выполнение функции.

В чем смысл и польза указания use strict в начале JavaScript-файла?​

Команда use strict включает так называемый строгий режим. В этом режиме предупреждения становятся ошибками.

Что такое замыкание в JavaScript?​

Это создание функции и вместе с ней окружения, к которому она может обращаться. Это позволяет ей работать с переменным и функциям этого окружения в дальнейшем.

Что такое стрелочная функция и какие у нее отличия от обычной?​

  • Это краткий способ записи функциональных выражений
  • Стрелочные функции не являются конструкторами, то есть нельзя с помощью new создать объект-экземпляр функции
  • Не поддерживает ключевые слова this, если быть точнее, то this в стрелочной функции будет ссылаться на this функции снаружи
  • Отсутствие arguments, содержащий список аргументов с которым обычная функция была вызвана
  • Можно вернуть значение, если стрелочная функция состоит из одной строки
  • В классах не нужна привязка к this, то-есть не нужно писать дополнительную функцию bind
  • Стрелочные функции не имеют атрибута прототипа.

Какая разница между параметрами и аргументами?​

  • Аргумент — это конкретное значение, которое мы «передали» функции при её вызове в скобочках. Это значение или набор значений присваивается формальным параметрам этой функции.
  • Параметр — это название переменной, указанное в объявлении функции и ожидающее присваивания конкретного значения в момент вызова функции.
  • Присваиваемое параметру значение и есть аргумент.

Объясните, что означает currying?​

  • Каррирование – это трансформация функций таким образом, чтобы они принимали аргументы не одним списком через запятую, а по отдельности. Это продвинутая техника для работы с функциями
  • Она может быть полезной, когда мы пишем для калбека функцию, в которую нужно помимо event передать еще что-то.

Что такое чейнинг функций?​

Это когда мы у объекта можем вызывать функции по цепочке, один за другим.

Как записать несколько выражений в одну строку?​

Выражения можно записывать в одну строку через запятую.

Что такое hoisting (поднятие) в JavaScript?​

  • Это механизм в JavaScript, в котором переменные и объявления функций, передвигаются вверх своей области видимости перед тем, как код будет выполнен
  • Стоит отметить то, что механизм «поднятия» передвигает только объявления функции или переменной. Назначения переменным остаются на своих местах.

Как работает Function.prototype.bind()?​

Данный метод возвращает функцию, по отношению к которой он вызывается, но с подмененным контекстом.

Что такое объект arguments?​

Arguments — это коллекция аргументов, передаваемых функции. Это объект, подобный массиву, у него есть свойство length, мы можем получить доступ к определенному значению с помощью arguments[i], но у него отсутствуют методы forEach, reduce, filter и map. Он позволяет узнать количество параметров функции.

Что такое IIFE?​

IIFE или Immediately Invoked Function Expression — это функция, которая вызывается или выполняется сразу же после создания или объявления.

Почему функции в JS называют объектами первого класса?​

  • Потому что они обрабатываются также, как и любое другое значение в JS
  • Важным отличием функции является то, что функция может быть выполнена или вызвана.

В чем разница между Function Declaration и Function Expression?​

  • Их определение выглядит по разному
  • Механизм поднятия в JS не срабатывает для Function Expression.

Что такое Рекурсия?​

Это когда алгоритм или функция вызывает сама себя.

Что такое функция высшего порядка?​

Это самая обычная функция, которая на вход принимает другую функцию.

Какие приемы работы с асинхронным кодом в JS Вы знаете?​

  • Функции обратного вызова
  • Промисы
  • Async await

Что такое промисы?​

Промисы — это один из приемов работы с асинхронным кодом в JS. Они возвращают результат асинхронной операции. Промисы были придуманы для решения проблемы так называемого «ада функций обратного вызова».

В чем разница между Promise all и PromiseAllSettled?​

  • PromiseAll возвращает массив значений от всех промисов
  • PromiseAllSettled возвращает массив с объектами, в которых находятся status, а так же value при разрешении промиса или reason при ошибке.

Что такое async await?​

Async await — относительно новый способ написания асинхронного (неблокирующего) кода в JS. Им оборачивают промис. Он делает код более читаемым и чистым, чем промисы и функции обратного вызова.

В чем разница между spread-оператором и rest-оператором?​

Операторы spread и rest имеют одинаковый синтаксис. Разница состоит в том, что с помощью spread мы передаем или распространяем данные массива на другие данные, а с помощью rest — получаем все параметры функции и помещаем их в массив или извлекаем часть параметров.

Что такое функция обратного вызова?​

Функция обратного вызова — это функция, вызов которой отложен на будущее (происходит при некоторых условиях, например, при наступлении события).

Что такое параметры по умолчанию?​

Это относительно новый способ определения значений переменных по умолчанию.

Что такое мутабельность и иммутабельность?​

  • Иммутабельность предполагает, что после создания данные или структура, которая их содержит, не могут быть изменены
  • Мутабельность означает что данные могут меняться.

Что такое модули?​

Модули позволяют объединять, использовать, код из разных файлов и избавляют нас от необходимости держать весь код в одном большом файле.

Расскажите о пирамиде тестирования​

Пирамида тестирования — один из способов обеспечения качества ПО, визуализация, которая помогает группировать тесты по типу их назначения.

Что такое temporal dead zone?​

Так как javascript идет сверху вниз, то переменные, которые должны быть определены ниже, попадают в мертвую зону, до того момента пока они не определятся.

Что такое объектная обертка (Wrapper Objects) boxing-unboxing?​

Методы – это свойства объектов, в которые записаны функции. Если это так, тогда почему работает такой код? hello.toUpperCase Строка (примитивный тип), у которого нет свойств и методов, но когда мы вызываем метод toUpperCase, это не приводит к ошибке. Временный объект отбрасывается по завершении работы со свойством или методом. Причина такого поведения заключается в том, что hello временно преобразуется в объект. У каждого примитива, кроме null и undefined, есть объект-обертка. Такими объектами являются String, Number, Boolean, Symbol и BigInt.

Что такое Garbage Collector?​

  • Управление памятью в JavaScript выполняется автоматически и незаметно для нас. — Основной концепцией управления памятью в JavaScript является принцип достижимости. Достижими считаются те, которые доступны или используются. Они гарантированно находятся в памяти.
  • Чтобы объект стал не достижимым нужно удалить на него все ссылки, после того как он станет не достижимым он удалиться из памяти.

Что такое дескрипторы свойств объектов?​

  • Помимо значения value, свойства объекта имеют три специальных атрибута дескрипторов:
  • writable – если true, свойство можно изменить, иначе оно только для чтения.
  • enumerable – если true, свойство перечисляется в циклах, в противном случае циклы его игнорируют.
  • configurable – если true, свойство можно удалить, а эти атрибуты можно изменять, иначе этого делать нельзя.
  • Есть методы, которые ограничивают доступ ко всему объекту, например Object freeze.

Расскажите о генераторах.​

Новый вид функций в современном JavaScript. Они отличаются от обычных тем, что могут приостанавливать своё выполнение, возвращать промежуточный результат и далее возобновлять его позже, в произвольный момент времени.

Расскажите о типе данных Symbol и его практическом применении.​

  • «Символ» представляет собой уникальный идентификатор. Он не являются строкой и по спецификации должен использоваться в объектах как ключ
  • При создании, символу можно дать описание, в основном использующееся для отладки кода: let id = Symbol(«id»)
  • Свойства, чьи ключи – символы, не перебираются циклом for..in. Object.keys(user) также игнорирует символы.
  • Символы позволяют создавать «скрытые» свойства объектов, к которым нельзя нечаянно обратиться и перезаписать их из других частей программы
  • Для чтения или при отсутствии создания символа из реестра, используется вызов Symbol for key.

Что такое V8 Engine?​

  • Это высокопроизводительный движок JavaScript и WebAssembly от Google с открытым исходным кодом, написанный на C++
  • Кроме того, что отличает V8 от других движков, он применяется в популярной серверной среде Node.js
  • Для того, чтобы добиться высокой скорости выполнения программ, V8 транслирует JS-код в более эффективный машинный код, не используя интерпретатор.

Что такое Event loop и как он работает?​

  • Идея событийного цикла очень проста. Есть бесконечный цикл, в котором движок JavaScript ожидает задачи, исполняет их и снова ожидает появления новых. Задачи из очереди исполняются по правилу «первым пришёл – первым ушёл»
  • Кроме главного списка задач существуют микрозадачи и макрозадачи
  • В микрозадачи попадают калбеки завершенных промисов, функции внутри queueMicrotask()
  • В макрозадачи попадают колбеки планирования и обработчики событий
  • Сначала выполняется основной код, затем микрозадачи и за ними макрозадачи.

Что означает аббревиатура CORS?​

Cross-Origin Resource Sharing — механизм, использующий дополнительные HTTP-заголовки, чтобы дать возможность пользователю получать разрешения на доступ к выбранным ресурсам с сервера на источнике, отличном от того, что сайт использует в данный момент.

Что такое XSS​

XSS (Cross-Site Scripting — «межсайтовый скриптинг») — довольно распространенная уязвимость, которую можно обнаружить на множестве веб-приложений. Ее суть довольно проста, злоумышленнику удается внедрить на страницу JavaScript-код, который не был предусмотрен разработчиками.

В чем разница между императивным и декларативным программированием?​

Императивное программирование — это описание того, как ты делаешь что-то, а декларативное — того, что ты делаешь.

Что такое SPA?​

Single Page Application — это реализация веб-приложения таким образом, чтобы при первой загрузке пользователь получал все ресурсы, необходимые для того, чтобы избавиться от загрузки страницы с нуля, при совершении интерактивных действий с интерфейсом.

Что такое Объектно-ориентированное программирование и функциональное программирование?​

  • Объектно-ориентированное программирование основано на концепции объектов. Это структуры данных, которые содержат поля данных, известные в JavaScript как свойства, и процедуры, известные как методы (Например: Math с его методами random, max, sin и свойствами такими как PI)
  • Функциональное программирование основан на концепции чистых функций, которые избегают общего состояния, изменяемых данных и побочных эффектов

Audio playlist

Огромный список тестовых задачек js

Проблемы?​

Пишите в Discord или телеграмм чат, а также подписывайтесь на наши новости

Основные строковые функции JavaScript: используйте экранные кавычки JavaScript

Содержание
  • 1. Строковые функции JavaScript: основные советы
  • 2. Список свойств
  • 3. Общие строковые методы
  • 4. Описание HTML Wrap по методам

Строковые функции JavaScript: основные советы

  • Строки в JavaScript представляют собой тип данных для хранения последовательностей символов .
  • Строки могут быть изменены с помощью различных строковых функций JavaScript: replace() , search() , substr() и многие другие.
  • Строки JavaScript представляют собой примитивный тип данных, но по-прежнему могут обращаться к различным методам и свойствам .

Список свойств

Строковый объект JavaScript содержит несколько свойств. Используя их, вы можете получить информацию о строке или предоставить некоторые дополнительные функции.

Например, длина будет указывать длину строки, а конструктор показывает конструктор строки.

В таблице ниже описаны все возможные свойства:

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

Pros

  • Простой дизайн (без лишней информации)
  • Качественные курсы (даже бесплатные)
  • Разнообразие функций
Основные характеристики

  • Программы наноградусов
  • Подходит для предприятий
  • Платные сертификаты об окончании

ЭКСКЛЮЗИВ: СКИДКА 75%

Плюсы

  • Удобная навигация
  • Никаких технических проблем
  • Кажется, заботится о своих пользователях
Основные характеристики

  • Огромное разнообразие курсов
  • 30-дневная политика возврата средств
  • Бесплатные сертификаты об окончании

AS НИЗКАЯ 12,99$

Профи

  • Отличный пользовательский опыт
  • Предлагает качественный контент
  • Очень прозрачные цены
Основные характеристики

  • Бесплатные сертификаты об окончании
  • Ориентирован на навыки работы с данными
  • Гибкий график обучения

СКИДКА 75% удаление , организация или замена целые строки или их части.

Разнообразие методов позволяет упорядочивать строки в массивы или извлекать определенную часть строки.

В таблице ниже представлено краткое введение в строковые функции JavaScript.

Для некоторых из этих функций также подготовлены отдельные руководства. Вы можете узнать больше о string.includes(), replace(), slice(), splice() и других.

Метод Описание
charAt() Возвращает символ по указанному индексу (позиции).
charCodeAt() Возвращает Unicode символа по указанному индексу.
конкат() Объединить несколько строк и вернуть новые объединенные.
заканчивается с() Проверить, заканчивается ли строка указанной строкой/символами.
изCharCode() Преобразование значений Unicode в символы.
включает() Проверить, содержит ли строка указанную строку/символы.
indexOf() Возвращает позицию первого найденного вхождения указанного значения в строку.
lastIndexOf() Возвращает позицию последнего найденного вхождения указанного значения в строку.
localeCompare() Сравнить две строки в текущей локали.
совпадение() Строка поиска совпадений с регулярным выражением и возврат этих совпадений.
повтор() Возвращает новую строку с указанным количеством копий существующей строки.
заменить() Поиск строки для указанного значения или регулярного выражения и возврат новой строки, в которой заменены указанные значения.
поиск() Строка поиска указанного значения или регулярного выражения и возвращаемая позиция совпадения.
срез() Извлечь часть строки и вернуть новую строку.
разделить() Разделить строку на массив подстрок.
начинается с() Проверить, начинается ли строка с указанных символов.
подстрока() Извлечь символы из строки, начиная с указанной начальной позиции и до указанного количества символов.
подстрока() Извлечь символы из строки между двумя указанными индексами.
toLocaleLowerCase() Преобразование строки в строчные буквы в соответствии с региональными настройками хоста.
toLocaleUpperCase() Преобразование строки в прописные буквы в соответствии с региональными настройками хоста.
toLowerCase() Преобразование строки в строчные буквы.
toString() Возвращаемое значение строкового объекта.
toUpperCase() Преобразование строки в прописные буквы.
обрезка() Удалить пробелы с обоих концов строки.
значениеOf() Возвращает примитивное значение объекта String.

Описание методов оболочки HTML

Методы оболочки HTML возвращают строку, заключенную в соответствующий тег HTML . Другими словами, вы можете манипулировать строковым форматом JavaScript.

После создания новой строки вы также связываете с ней строку объект .

Благодаря строковому объекту вы можете выбирать из множества функций для управления строковым форматом JavaScript. В следующей таблице перечислены методы, которые можно применять для изменения формата строк:

Метод Описание
якорь() Создать якорь.
большой() Отображать строку увеличенным шрифтом
мерцание() Показать мигающую строку
полужирный() Отображать строку жирным шрифтом
фиксированный() Строка отображения с использованием шрифта с фиксированным шагом
цвет шрифта() Отображение строки с использованием определенного цвета
размер шрифта() Строка отображения с использованием определенного размера
курсив() Отображать строку курсивом
ссылка() Показать строку как гиперссылку
маленький() Отображать строку более мелким шрифтом
удар() Отображаемая строка с зачеркиванием
суб() Отображать строку как текст нижнего индекса
суп() Отображать строку в виде надстрочного текста

Свойства и методы JavaScript String

Реклама

В этой главе содержится краткий обзор свойств и методов глобального объекта String.

Объект JavaScript String

Объект JavaScript String — это глобальный объект, используемый для хранения строк. Строка представляет собой последовательность букв, цифр, специальных символов и арифметических значений или их комбинацию.

Чтобы узнать больше о String, ознакомьтесь с главой о строках JavaScript.

Свойства строки

В следующей таблице перечислены стандартные свойства объекта String.

Собственность Описание
длина Возвращает длину строки.
прототип Позволяет добавлять новые свойства и методы к объекту String.

Примечание: Каждый объект в JavaScript имеет свойство конструктора , которое ссылается на функцию конструктора, которая использовалась для создания экземпляра этого объекта.


Строковые методы

В следующей таблице перечислены стандартные методы объекта String.

Метод Описание
charAt() Возвращает символ по указанному индексу.
charCodeAt() Возвращает Unicode символа по указанному индексу.
concat() Объединяет две или более строк и возвращает новую строку.
заканчивается с() Проверяет, заканчивается ли строка указанной подстрокой.
изCharCode() Преобразует значения Unicode в символы.
включает() Проверяет, содержит ли строка указанную подстроку.
indexOf() Возвращает индекс первого вхождения указанного значения в строку.
lastIndexOf() Возвращает индекс последнего вхождения указанного значения в строку.
localeCompare() Сравнивает две строки в текущей локали.
совпадение() Сопоставляет строку с регулярным выражением и возвращает массив всех совпадений.
повтор() Возвращает новую строку, содержащую указанное количество копий исходной строки.
заменить() Заменяет вхождения строки или шаблона внутри строки другой строкой и возвращает новую строку без изменения исходной строки.
поиск() Ищет строку по регулярному выражению и возвращает индекс первого совпадения.
срез() Извлекает часть строки и возвращает ее как новую строку.
разделить() Разбивает строку на массив подстрок.
начинает с() Проверяет, начинается ли строка с указанной подстроки.
подстрока() Извлекает часть строки между начальным индексом и рядом символов после него.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *