--- title: string.length slug: Web/JavaScript/Reference/Global_Objects/String/length tags: - JavaScript - Property - Prototype - String - Властивість - Довідка - довжина - рядок translation_of: Web/JavaScript/Reference/Global_Objects/String/length ---
{{JSRef}}

Властивість length об'єкта {{jsxref("String")}} містить довжину рядка у кодових одиницях UTF-16. Це властивість-значення рядкових екземплярів, доступна лише для читання.

{{EmbedInteractiveExample("pages/js/string-length.html", "shorter")}}

Синтаксис

str.length

Опис

Ця властивість повертає кількість кодових одиниць (англ. code unit), які утворюють рядок. У JavaScript для рядків використовується кодування {{interwiki("wikipedia", "UTF-16")}}, яке вживає одну 16-бітну (двобайтну) кодову одиницю для передачі більшості загальновживаних символів, але для менш поширених воно потребує двох кодових одиниць. Отже, значення, length та справжня кількість символів рядка не завжди збігаються.

У ECMAScript 2016 (вер. 7) було встановлено максимальну довжину у 2^53 - 1 елементів. Попередньо не було визначено ніякої максимальної довжини. У Firefox рядки мають максимальну довжину 2**30 - 2 (~1ГБ). У версіях, більш ранніх за Firefox 65, максимальна довжина складала 2**28 - 1 (~256МБ).

Для порожнього рядка length дорівнює 0.

Статична властивість String.length не пов'язана з довжиною рядків, це арність функції String (загалом, це кількість формальних параметрів, що вона має), яка дорівнює 1.

Юнікод

Оскільки `length` рахує кодові одиниці замість символів, якщо вам треба отримати кількість символів, вам знадобиться щось таке:

function getCharacterLength (str) {
  // Ітератор рядка, що тут використовується, перебирає символи,
  // а не просто кодові одиниці
  return [...str].length;
}

console.log(getCharacterLength('A\uD87E\uDC04Z')); // 3

// Це не рекомендується, але ви можете додати його до кожного рядка ось так:

Object.defineProperty(String.prototype, 'charLength', {
  get () {
    return getCharacterLength(this);
  }
});

console.log('A\uD87E\uDC04Z'.charLength); // 3

Приклади

Типове використання

var x = 'Вогнелис';
let empty = '';

console.log(x + ' має довжину ' + x.length + ' кодових одиниць');
/* "Вогнелис має довжину 8 кодових одиниць" */

console.log('Порожній рядок має довжину ' + empty.length);
// очікуваний результат: "Порожній рядок має довжину 0"

Присвоювання довжини

let myString = "проліски";

// Спроба присвоїти значення властивості рядка .length не має видимого ефекту.
myString.length = 4;
console.log(myString);
// очікуваний результат: "проліски"
console.log(myString.length);
// очікуваний результат: 8

Специфікації

Специфікація
{{SpecName('ESDraft', '#sec-properties-of-string-instances-length', 'String.prototype.length')}}

Підтримка веб-переглядачами

{{Compat("javascript.builtins.String.length")}}

Див. також