String.length
Свойство length представляет длину строки.
Синтаксис
Описание
Это свойство возвращает количество кодовых значений в строке. В UTF-16, строковом формате, используемом в JavaScript, для представления большинства символов используется одно 16-битное кодовое значение, но для представления не так часто используемых символов требуется два кодовых значения, так что вполне может быть так, что значение, возвращённое свойством length не будет соответствовать действительному количеству символов в строке.
Basics of Javascript · String · length (property)
![]()
Hello and welcome to the second article in Javascript Basics series about Strings. Today, we are talking about one of the few available properties of String object and it is “length”.
The length property returns the length of a string (number of characters).
Okay, straightforward enough. What about empty strings, you ask? Well, let’s see. The length of an empty string would be 0.
This is all really simple. I guess we are done here then…how about I give you one big “thumbs up” for the road?
Okay, that is strange…let’s try some other character:
What is going on? Why is it saying that one character has a length of 2 characters? The issue is that length does not actually return the number of characters in a string, but rather returns the number of code units in the string.
Javascript uses UTF-16 as its string format, which means that every character is encoded as a 16-bit long binary number. Or a code unit if you will.
But there are only so many characters that can fit into the UTF-16 character set. To be precise, theoretically it can hold at most 2 to the power of 16, which is 65536 characters. That might sound like a lot, but you need to realize that we don’t use only latin alphabet and numbers. Different languages have different letters and punctuation characters, even some extra letters in their alphabet. And there are many many more other alphabets, for example greek, arabic, chinese alphabet, azbuka and many others. Suddenly 65 thousand doesn’t sound like a lot, does it?
Although it’s very unlikely that you will encounter this problem in real life, it’s good to be aware of it. And just so you don’t lose your good night sleep over it, I will show you not one, but two different solutions to fix the issue, if you encounter it in the future.
First option is to convert the string into an array using “three dots” notation. Let me show you real quick:
The reason why this works is that the iterator that is applied to the converted array iterates over characters, not code units. Therefore it counts what we actually want to count.
Another option is to use one of the String object methods called match(). I won’t go into too much detail, because this method will get its own video. Just bear in mind, it can be helpful in this situation as well.
Okay, so that was String property length. I hope you learned something new today. I sure did learn a lot researching this topic.
Как узнать длину строки javascript
Oбъект String имеет большой набор свойств и методов, с помощью которых мы можем манипулировать строками.
Свойство length указывает на длину строки: Метод repeat() позволяет создать строку путем многократного повторения другой строки. Количество повторов передается в качестве аргумента:
Шаблоны строк
Шаблоны строк позволяют вставлять в строку различные значения. Для этого строки заключаются в косые кавычки: Для вставки значения в строку оно заключается в фигурные скобки, перед которыми ставится знак доллара.
Также вместо скалярных значений могут добавляться свойства сложных объектов или результаты выражений:
Поиск в строке
- Подстроку, которую надо найти
- Необязательный параметр, который указывает, с какого символа следует проводить поиск подстроки в строке
Выбор подстроки
Для того, чтобы вырезать из строки подстроку, применяются методы substr() и substring() .
- индекс символа в строке, начиная с которого надо проводить обрезку строки
- индекс, до которого надо обрезать строку
Управление регистром
Для изменения регистра имеются методы toLowerCase() (для перевода в нижний регистр) и toUpperCase() (для перевода в верхний регистр).
Получение символа по индексу
Чтобы получить определенный символ в строке по индексу, можно применять методы charAt() и charCodeAt() . Оба этих метода в качестве параметра принимают индекс символа:
Удаление пробелов
Для удаления начальных и концевых пробелов в стоке используется метод trim() :
Объединение строк
Метод concat() объединяет две строки:
Замена подстроки
Метод replace() заменяет первое вхождение одной подстроки на другую: Первый параметр метода указывает, какую подстроку надо заменить, а второй параметр — на какую подстроку надо заменить.
Разделение строки
Метод split() разбивает строку на массив подстрок по определенному разделителю. В качестве разделителя используется строка, которая передается в метод:
Проверка начала и окончания строки
Метод startsWith() возвращает true, если строка начинается с определенной подстроки. А метод endsWith() возвращает true, если строка оканчивается на определенную подстроку. При этом играет роль регистр символов,
Дополнительный второй параметр позволяет указать индекс (для startsWith — индекс с начала, а для endsWith — индекс с конца строки), относительно которого будет производиться сравнение: Output
Работа со строками в JavaScript. Строковые функции
В этой статье мы поработаем со строками в JavaScript и рассмотрим такое понятие, как длина строки (length string). Также попрактикуемся с некоторыми строковыми функциями (методами).
В JavaScript строками считаются любые текстовые данные. В этом языке нет отдельного типа «символ», как это принято в некоторых других языках программирования. Если говорить о внутреннем формате для строк — то это всегда UTF-16, причём кодировка страницы значения не имеет.
Кавычки
В языке JavaScript существуют различные типы кавычек. К примеру, мы можем создать строку, используя одинарные, двойные или обратные кавычки:
И двойные, и одинарные кавычки работают, в принципе, одинаково. Что касается обратных, то тут есть пару отличий: 1) они позволяют вставлять в строку произвольные выражения, предварительно обёрнутые в $<…>:
2) они позволяют занимать более одной строки:
Вроде бы, всё очевидно и просто, но если мы попробуем сделать то же самое, используя двойные или одинарные кавычки, то получим ошибку.
Но вообще, и двойные, и одинарные кавычки были в JavaScript уже давно, ещё во времена, когда потребность в многострочии была не так велика. Обратные кавычки появились позже, поэтому они более гибкие в применении и лучше соответствуют современным реалиям.
Вдобавок к вышесказанному, скажем, что обратные кавычки дают возможность задавать «шаблонные функции» (они могут применяться перед первой обратной кавычкой). Тут синтаксис следующий:
У нас автоматически вызывается функция func, получающая строку и встроенные в эту строку выражения, которые она может обработать. Если перед строкой присутствует выражение, шаблонную строку называют «теговым шаблоном». Таким образом, появляется возможность применять собственную шаблонизацию для строк, однако на деле теговые шаблоны используются нечасто.
Спецсимволы
Если мы применяем одинарные либо двойные кавычки, мы тоже можем создавать многострочные строки. Для этого понадобится символ перевода строки \n:
Две строки ниже являются эквивалентными. Разница в том, что они по-разному записаны:
Существует и масса других спецсимволов:

Рассмотрим парочку примеров с Юникодом:
Как правило, спецсимволы начинаются с символа экранирования, представляющего собой обратный слеш \ . Его можно использовать и для того, чтобы вставлять в строки кавычки:
Но экранировать нужно только тогда, когда внутри строки мы используем такие же кавычки, в которые эта самая строка заключена. Таким образом, можно поступать проще:
Как видите, мы поместили строку в косые кавычки, а раздели I’m одинарной кавычкой. Просто и элегантно.
Кстати, если вдруг потребуется добавить в нашу строку сам обратный слеш, то мы экранируем его вторым обратным слешем:
Длина строки в JavaScript
Длину строки нам возвращает свойство length:
Так как \n является одним спецсимволом, то и длина строки получается равна трём, поэтому ошибки в коде нет.
Тут следует добавить, что length — это всё же свойство, а не функция, поэтому не нужно пытаться вызывать его путём добавления круглых скобок ( str.length() , а не str.length ). Такой вариант не сработает, ведь str.length — числовое свойство, а значит, скобки не добавляются.
Перебор строк
Если нужно посимвольно перебрать строки, используют for..of:
Изменяемы ли строки?
Нет, их содержимое изменить нельзя, когда строка создаётся, у вас не получится взять какой-нибудь символ из середины и выполнить его замену. Впрочем, давайте попробуем:
Но выход есть — создаём новую строку и записываем её вместо старой в ту же переменную:
Строковые функции
Строковые функции (методы) упрощают работу со строками в JavaScript. Давайте посмотрим, как происходит изменение регистра с помощью строковых функций. К примеру с помощью функций toLowerCase() и toUpperCase() мы можем изменить регистр символов следующим образом:
Также при необходимости мы можем выполнить перевод в нижний регистр и для какого-нибудь определённого символа:
Подробнее о строковых функциях поговорим в следующий раз. В частности, рассмотрим, как осуществляется поиск в строке и как работать с подстрокой. Следите за новостями!
Интересует профессиональный курс по JavaScript-разработке? Переходите по ссылке ниже:

При подготовке статьи использовались следующие материалы: — «Строки»; — «JavaScript. Строковые методы».