You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Як бачите, ми повинні "екранувати" лапку зворотним слешем `\'`, оскільки інакше це означало б кінець рядка.
104
+
Як бачите, ми повинні "екранувати" лапку зворотним слешем `\'`, оскільки інакше ця лапка означала б кінець рядка.
105
105
106
-
Звісно, потрібно "екранувати" лише такі лапки, якими обрамлений рядок. Як елегантніше рішення, ми могли б замість цього скористатися подвійними або зворотними лапками:
106
+
Звісно ж, потрібно "екранувати" лише такі лапки, якими обрамлений рядок. Або ще більш елегантним рішенням було б замість цього скористатися подвійними або зворотними лапками:
Перший метод -- [str.indexOf(substr, pos)](mdn:js/String/indexOf).
216
216
217
-
Він шукає підрядок `substr` в рядку `str`, починаючи з позиції `pos`, і повертає позицію, де знаходиться збіг, або `-1`якщо збігів не було знайдено.
217
+
Він шукає підрядок `substr` в рядку `str`, починаючи з позиції `pos`, і повертає позицію, де знаходиться збіг, або якщо збігів не було знайдено, то `-1`.
218
218
219
219
Наприклад:
220
220
@@ -237,7 +237,7 @@ let str = 'Віджет з ідентифікатором';
237
237
alert( str.indexOf('ід', 2) ) // 9
238
238
```
239
239
240
-
Щоб знайти усі збіги, нам потрібно запустити `indexOf` в циклі. Кожен новий виклик здійснюється з позицією після попереднього збігу:
240
+
Щоб знайти усі збіги, нам потрібно запустити `indexOf` в циклі. Кожен новий виклик починається з позиції після попереднього збігу:
: Повертає частину рядка *між*`start` та `end` (не включаючи `end`)..
359
+
: Повертає частину рядка *між*`start` та `end` (не включаючи `end`).
360
360
361
-
Цей метод майже такий самий що і `slice`, але він дозволяє задати `start` більше ніж `end` (у цьому випадку він просто міняє значення `start` і `end` місцями).
361
+
Цей метод майже такий самий як і `slice`, але `substring` дозволяє задати `start` більше значення, ніж `end` (у такому випадку він просто поміняє значення `start` і `end` місцями).
alert( str.substr(-4, 2) ); // 'gi', починаючи з позиції 4 з кінця отримуєму 2 символа
395
395
```
396
396
397
-
Цей метод міститься в [Annex B](https://tc39.es/ecma262/#sec-string.prototype.substr) специфікації мови. Це означає, що лише рушії браузерного Javascript мають його підтримувати, і не рекомендується його використовувати. На практиці це підтримується всюди.
397
+
Цей метод міститься в [Annex B](https://tc39.es/ecma262/#sec-string.prototype.substr) специфікації мови. Це означає, що його мають підтримувати лише браузерні рушії Javascript, і не рекомендується його використовувати. На практиці це підтримується всюди.
|`substr(start, length)`|`length` символів від `start`| дозволяє відʼємні значення `start`|
406
406
407
407
```smart header="Який метод вибрати?"
408
-
Усі вони можуть виконати задачу. Формально `substr` має незначний недолік: він описаний не в основній специфікації JavaScript, а в Annex B, який охоплює лише функції браузера, які існують переважно з історичних причин. Тому не браузерні середовища, можуть не підтримувати його. Але на практиці це працює всюди.
408
+
Усі вони можуть виконати задачу. Формально `substr` має незначний недолік: він описаний не в основній специфікації JavaScript, а в Annex B, яка охоплює лише функції браузера, які існують переважно з історичних причин. Тому не браузерні середовища, можуть не підтримувати його. Але на практиці це працює всюди.
409
409
410
410
З двох інших варіантів `slice` дещо гнучкіший, він допускає від'ємні аргументи та коротший в записі.
2. Літери з діакритичними знаками "не по порядку":
428
428
429
429
```js run
430
430
alert( 'Österreich' > 'Zealand' ); // true
431
431
```
432
432
433
433
Це може призвести до дивних результатів, якщо ми відсортуємо ці назви країн. Зазвичай люди очікують, що `Zealand` буде після `Österreich`.
434
434
435
-
Щоб зрозуміти, що відбувається, давайте розглянемо внутрішнє представлення рядків у JavaScript закодованих за допомогою [UTF-16](https://uk.wikipedia.org/wiki/UTF-16). Тобто: кожен символ має відповідний числовий код..
435
+
Щоб розуміти, що відбувається, нам слід бути в курсі, що рядки в JavaScript реалізовані з використанням [UTF-16](https://uk.wikipedia.org/wiki/UTF-16). Тобто, кожен символ має свій відповідний числовий код.
436
436
437
437
Існують спеціальні методи, які дозволяють отримати символ по коду і навпаки.
Бачите? Спочатку вводяться великі символи, потім кілька спеціальних, потім символи нижнього регістру та `Ö` ближче до кінця виводу.
472
+
Бачите? Спочатку виводяться великі символи, потім кілька спеціальних, потім символи нижнього регістру та `Ö` ближче до кінця виводу.
473
473
474
474
Тепер стає очевидним, чому `a >Z`.
475
475
@@ -482,11 +482,11 @@ alert( str );
482
482
483
483
«Правильний» алгоритм порівняння рядків є складнішим, ніж може здатися, тому що для різних мов – різні алфавіти.
484
484
485
-
Отже, браузеру потрібно знати, яку мову використовувати для порівняння.
485
+
Отже, браузеру потрібно знати алфавіт якої мови використовувати для порівняння.
486
486
487
487
На щастя, усі сучасні браузери підтримують стандарт інтернаціоналізації [ECMA-402](https://www.ecma-international.org/publications-and-standards/standards/ecma-402/).
488
488
489
-
Він забезпечує спеціальний метод для порівняння рядків різними мовами, дотримуючись їхніх правил.
489
+
Він забезпечує спеціальний метод для порівняння рядків з різних мов, дотримуючись їхніх правил.
490
490
491
491
Виклик [str.localeCompare(str2)](mdn:js/String/localeCompare) повертає ціле число, яке вказує, чи є `str` меншим, рівним чи більшим за `str2` відповідно до правил мови:
Цей метод насправді має два додаткові аргументи, зазначені в [документації](mdn:js/String/localeCompare), що дозволяє йому вказати мову (типово взяту з середовища, порядок букв залежить від мови) і встановити додаткові правила, як-от чутливість до регістру або чи слід розглядати різницю між `"a"` та `"á"`.
503
+
Цей метод насправді має два додаткові аргументи, зазначені в [документації](mdn:js/String/localeCompare), що дозволяє явно вказати йому мову (яку він типово визначає опираючись на середовище. І від чого залежить порядок букв), і встановити додаткові правила, як-от чутливість до регістру або чи слід розглядати різницю між `"a"` та `"á"`.
0 commit comments