- .length
- Пример
- Как понять
- Подсчет символов в строке javascript
- Синтаксис length
- Параметры length
- Возвращаемое значение length
- Примеры
- Пример 1: Использование свойства length
- Пример 2: Cвойство length доступно только для чтения
- String: length
- Try it
- Value
- Description
- Examples
- Basic usage
- Strings with length not equal to the number of characters
- Assigning to length
- Specifications
- Browser compatibility
- See also
- Found a content problem with this page?
- MDN
- Support
- Our communities
- Developers
- Работа со строками в JavaScript
- Объединение
- Подсчет символов
- Проверка на тип и пустоту
- Поиск в строке
- Замены в строке
- Работа с подстроками
- Разбиение на массив
- Свойство length объекта String — Число символов в строке
- Свойство length — число символов в строке
- Читайте также.
.length
Свойство length хранит длину строки, которое обычно совпадает с количеством символов в ней. Если в строке есть непростые символы, вроде эмодзи, они могут удлинять строку больше, чем на единицу.
Длина пустой строки равна 0.
Пример
Скопировать ссылку «Пример» Скопировано
const phrase = 'Съешь ещё этих мягких французских булок, да выпей же чаю'console.log(phrase.length)// 56 const empty = ''console.log(empty.length)// 0 const emoji = '👩💻'console.log(emoji.length)// 5 🤷♂️
const phrase = 'Съешь ещё этих мягких французских булок, да выпей же чаю' console.log(phrase.length) // 56 const empty = '' console.log(empty.length) // 0 const emoji = '👩💻' console.log(emoji.length) // 5 🤷♂️
Как понять
Скопировать ссылку «Как понять» Скопировано
Строки в JavaScript хранятся в виде последовательности символов в формате UTF-16. UTF-16 использует понятие юнита — одного значения из таблицы UTF-16. Все символы мировых алфавитов представляются в виде одного юнита.
Редкие символы могут использовать несколько юнитов. Если вы решите использовать символы из древнеегипетской письменности, то каждый из них будет занимать два юнита:
console.log('𓀿'.length)// 2
console.log('𓀿'.length) // 2
Эмодзи состоят из нескольких юнитов. Количество использованных юнитов зависит от эмодзи:
console.log('👩💻'.length)// 5console.log('😀'.length)// 2
console.log('👩💻'.length) // 5 console.log('😀'.length) // 2
Подсчет символов в строке javascript
Свойство length возвращает количество символов в строке.
// объявление строки let sentence = "I love Purpleschool."; // возвращает количество символов в строке предложения let len = sentence.length; console.log(len); // Вывод в консоль: // 20
Синтаксис length
Синтаксис метода length следующий:
Параметры length
Свойство length не принимает никаких параметров.
Возвращаемое значение length
Возвращает количество символов в строке.
Примечание: свойство String.length возвращает кодовые единицы в формате строки UTF-16. Для представления некоторых редких символов строки требуется две кодовые единицы. В связи с этим свойство length не всегда возвращает количество символов.
Примеры
Пример 1: Использование свойства length
// объявление строки let string1 = "JavaScript"; // возвращает количество символов в 'JavaScript' let len = string1.length; console.log(len);
В приведенном выше примере мы определили строку с именем string1 . Затем мы использовали свойство length , чтобы узнать количество символов в string1 .
Поскольку ‘JavaScript’ содержит 10 символов, string1.length возвращает 10.
Пример 2: Cвойство length доступно только для чтения
Свойство String.length — это свойство только для чтения. Попытка изменить его вручную не приведет ни к каким последствиям. Например:
let string2 = "Programming"; // присвоение значения свойству длины строки string2.length = 5; // не изменяет исходную строку console.log(string2); // Programming // возвращает длину «Programming» console.log(string2.length); // 11
Здесь мы присвоили новое значение string2.length . Поскольку свойство string.length предназначено только для чтения, присвоение ему значения не изменяет исходный массив.
string2.length возвращает 11, что является длиной ‘Programming’ .
String: length
The length data property of a String value contains the length of the string in UTF-16 code units.
Try it
Value
Property attributes of String: length | |
---|---|
Writable | no |
Enumerable | no |
Configurable | no |
Description
This property returns the number of code units in the string. JavaScript uses UTF-16 encoding, where each Unicode character may be encoded as one or two code units, so it’s possible for the value returned by length to not match the actual number of Unicode characters in the string. For common scripts like Latin, Cyrillic, wellknown CJK characters, etc., this should not be an issue, but if you are working with certain scripts, such as emojis, mathematical symbols, or obscure Chinese characters, you may need to account for the difference between code units and characters.
The language specification requires strings to have a maximum length of 2 53 — 1 elements, which is the upper limit for precise integers. However, a string with this length needs 16384TiB of storage, which cannot fit in any reasonable device’s memory, so implementations tend to lower the threshold, which allows the string’s length to be conveniently stored in a 32-bit integer.
- In V8 (used by Chrome and Node), the maximum length is 2 29 — 24 (~1GiB). On 32-bit systems, the maximum length is 2 28 — 16 (~512MiB).
- In Firefox, the maximum length is 2 30 — 2 (~2GiB). Before Firefox 65, the maximum length was 2 28 — 1 (~512MiB).
- In Safari, the maximum length is 2 31 — 1 (~4GiB).
For an empty string, length is 0.
The static property String.length is unrelated to the length of strings. It’s the arity of the String function (loosely, the number of formal parameters it has), which is 1.
Since length counts code units instead of characters, if you want to get the number of characters, you can first split the string with its iterator, which iterates by characters:
function getCharacterLength(str) // The string iterator that is used here iterates over characters, // not mere code units return [. str].length; > console.log(getCharacterLength("A\uD87E\uDC04Z")); // 3
Examples
Basic usage
const x = "Mozilla"; const empty = ""; console.log(`$x> is $x.length> code units long`); // Mozilla is 7 code units long console.log(`The empty string has a length of $empty.length>`); // The empty string has a length of 0
Strings with length not equal to the number of characters
const emoji = "😄"; console.log(emoji.length); // 2 console.log([. emoji].length); // 1 const adlam = "𞤲𞥋𞤣𞤫"; console.log(adlam.length); // 8 console.log([. adlam].length); // 4 const formula = "∀𝑥∈ℝ,𝑥²≥0"; console.log(formula.length); // 11 console.log([. formula].length); // 9
Assigning to length
Because string is a primitive, attempting to assign a value to a string’s length property has no observable effect, and will throw in strict mode.
const myString = "bluebells"; myString.length = 4; console.log(myString); // "bluebells" console.log(myString.length); // 9
Specifications
Browser compatibility
BCD tables only load in the browser
See also
Found a content problem with this page?
This page was last modified on May 31, 2023 by MDN contributors.
Your blueprint for a better internet.
MDN
Support
Our communities
Developers
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2023 by individual mozilla.org contributors. Content available under a Creative Commons license.
Работа со строками в JavaScript
Умение работать со строковыми переменными в javascript является обязательным условием при написании даже небольших скриптов. Рассмотрим базовые операции на простых примерах.
Объединение
Рассмотрим основные аспекты, связанные с объединением строк и строковых переменных.
let s1 = 'Hello'; let s2 = 'world'; let s3 = s1 + s2 + '!'; console.log(s3); // Hello world!
let s1 = "It's string"; let s2 = 'It\'s string';
let s1 = 'Hello'; let s2 = 'world'; let s3 = `$ $!`; console.log(s3); // Hello world!
let s1 = 'Hello'; let s2 = 'world'; let s3 = s1.concat(' ', s2, '!'); console.log(s3); // Hello world!
Подсчет символов
Для подсчета количества символов используйте метод « length ».
let s = "It's string"; console.log(s.length); // 11
Проверка на тип и пустоту
let s = «it’s string»; if (typeof s == ‘string’) < console.log('s Is string'); >else
Поиск в строке
- Чтобы определить вхождение слова или символа в строку, используйте функцию « indexOf ». Она возвращает позицию найденной подстроки или « -1 », если ничего не найдено.
let s = ‘Hello world!’; if (s.indexOf(‘world’) != -1) < console.log('world Is found'); >else
let s = ‘Happy new 2020 year! Next year — 2021.’; let Regex = /(\d+)/g; let year; if (year = s.match(Regex)) < console.log(year[0]); // 2020 console.log(year[1]); // 2021 >else
Замены в строке
let s = 'Hello world world!'; let s_new = s.replace(' world', ''); console.log(s_new); // Hello world!
let s = 'Hello world world!'; let Regex = / world/gi; let s_new = s.replace(Regex, ''); console.log(s_new); // Hello!
let s = 'Happy new 2020 year!'; let s_new = s.replace(/(\d+)/, '2021'); console.log(s_new); // Happy new 2021 year!
Работа с подстроками
Рассмотрим функции для работы с подстроками.
- slice(start, [end]) — возвращает символы, между конкретных позиций.
let s = '0123456789'; let s_new = s.slice(0, 4); console.log(s_new); // 0123
let s = '0123456789'; console.log(s.slice(6, 4)); // '' console.log(s.substring(6, 4)); // 45
let s = '0123456789'; console.log(s.slice(-4, -2)); // 67 console.log(s.substring(-4, -2)); // ''
let s = '0123456789'; let s_new = s.substr(4, 3); console.log(s_new); // 456
Разбиение на массив
- Преобразование строки в массив. В качестве параметра указывается разделитель, в нашем случае это пробел.
let s = 'Happy new 2020 year!'; let a = s.split(' '); console.log(a); // ["Happy", "new", "2020", "year!"]
let a = ["Happy", "new", "2020", "year!"]; let s = a.join(' '); console.log(a); // Happy new 2020 year!
В совокупности функции позволяют быстро конвертировать строку в массив, произвести с каждым элементом манипуляции и возвратить обратно строку. Например, вот как быстро можно обернуть каждый символ строки в тег span :
let s = 'Hello'; s = s.split("").map(el => `$ `).join(""); console.log(s); // Hello
В примере используется синтаксис ECMAScript 6, может не поддерживаться устаревшими браузерами.
Свойство length объекта String — Число символов в строке
Как известно, JavaScript — это объектно-ориентированный язык и в нем многое основано на объектах.
Также напомним о том, что в JavaScript при создании переменных, в качестве их значений могут выступать как числа, так и строки (string — текст или программный код).
Так вот, когда мы создаем какую-либо переменную и помещаем в нее строковое значение, то, по сути, мы создаем объект строкового типа или объект string .
var name = «Антон» ; /* Объект name строкового типа */
Рассмотрим фрагмент кода выше. Ранее мы говорили так: была создана переменная name .
Но на самом деле, этот фрагмент кода говорит о том, что был создан объект name строкового типа — объект string .
В JavaScript у любых объектов есть свойства и методы . И строковые объекты здесь не исключение. При помощи определенных свойств и методов со строковыми объектами можно как-то работать: менять их, извлекать из них информацию и т.п.
Свойство length — число символов в строке
Начнем с простого свойства строкового объекта — это свойство length . Оно нам уже знакомо из темы массивов и оно возвращает число элементов Массива.
Для объекта string свойство length аналогично и возвращает количество символов в строке.
var name = «Антон» ; /* Объект name строкового типа */
document . write ( «Число символов объекта name равно » + name . length );
Свойство length в JavaScript учитывает знаки препинания и пробелы.
Читайте также.
Метод write() объекта document
Объект Window и свойство window
Регистр строки — toUpperCase и toLowerCase
Метод slice — Копирование из строки
Что нужно для изучения javascript?
Экранирование кавычек в Javascript
Свойство length — число элементов массива
Способы создания объектов — new Object и Фигурные скобки