From 218934fa2ed1c702a6d3923d2aa2cc6b43c48684 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:43:23 -0500 Subject: initial commit --- .../global_objects/string/length/index.html | 105 +++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 files/uk/web/javascript/reference/global_objects/string/length/index.html (limited to 'files/uk/web/javascript/reference/global_objects/string/length') diff --git a/files/uk/web/javascript/reference/global_objects/string/length/index.html b/files/uk/web/javascript/reference/global_objects/string/length/index.html new file mode 100644 index 0000000000..b52a468f96 --- /dev/null +++ b/files/uk/web/javascript/reference/global_objects/string/length/index.html @@ -0,0 +1,105 @@ +--- +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")}}

+ +

Див. також

+ + -- cgit v1.2.3-54-g00ecf