Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit a2500e9

Browse files
Merge pull request #704 from Andrii256/01-05-03-string
Fix string (01-05-03)
2 parents 1a14e4e + 434ca2d commit a2500e9

File tree

1 file changed

+18
-18
lines changed

1 file changed

+18
-18
lines changed

‎1-js/05-data-types/03-string/article.md‎

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ alert(str1 == str2); // true
8787

8888
Усі спеціальні символи починаються зі зворотного слеша `\`. Його також називають "символом екранування".
8989

90-
Оскільки це так особливо, якщо нам потрібно показати зворотний слеш `\` у рядку, нам потрібно подвоїти його:
90+
Оскільки він не зовсім звичайний, то якщо нам потрібно показати зворотний слеш `\` у рядку, нам потрібно подвоїти його:
9191

9292
```js run
9393
alert( `Зворотний слеш: \\` ); // Зворотний слеш: \
@@ -101,9 +101,9 @@ alert( `Зворотний слеш: \\` ); // Зворотний слеш: \
101101
alert( 'Ім*!*\'*/!*я моє — Морж!' ); // *!*Ім'я*/!* моє — Морж!
102102
```
103103

104-
Як бачите, ми повинні "екранувати" лапку зворотним слешем `\'`, оскільки інакше це означало б кінець рядка.
104+
Як бачите, ми повинні "екранувати" лапку зворотним слешем `\'`, оскільки інакше ця лапка означала б кінець рядка.
105105

106-
Звісно, потрібно "екранувати" лише такі лапки, якими обрамлений рядок. Як елегантніше рішення, ми могли б замість цього скористатися подвійними або зворотними лапками:
106+
Звісно ж, потрібно "екранувати" лише такі лапки, якими обрамлений рядок. Або ще більш елегантним рішенням було б замість цього скористатися подвійними або зворотними лапками:
107107

108108
```js run
109109
alert( `Ім'я моє — Морж!` ); // Ім'я моє — Морж!
@@ -214,7 +214,7 @@ alert( 'Interface'[0].toLowerCase() ); // 'і'
214214

215215
Перший метод -- [str.indexOf(substr, pos)](mdn:js/String/indexOf).
216216

217-
Він шукає підрядок `substr` в рядку `str`, починаючи з позиції `pos`, і повертає позицію, де знаходиться збіг, або `-1`якщо збігів не було знайдено.
217+
Він шукає підрядок `substr` в рядку `str`, починаючи з позиції `pos`, і повертає позицію, де знаходиться збіг, або якщо збігів не було знайдено, то `-1`.
218218

219219
Наприклад:
220220

@@ -237,7 +237,7 @@ let str = 'Віджет з ідентифікатором';
237237
alert( str.indexOf('ід', 2) ) // 9
238238
```
239239

240-
Щоб знайти усі збіги, нам потрібно запустити `indexOf` в циклі. Кожен новий виклик здійснюється з позицією після попереднього збігу:
240+
Щоб знайти усі збіги, нам потрібно запустити `indexOf` в циклі. Кожен новий виклик починається з позиції після попереднього збігу:
241241

242242
```js run
243243
let str = 'Хитрий, як лисиця, сильний, як Як';
@@ -356,9 +356,9 @@ alert( "Від*!*жет*/!*".endsWith("жет") ); // true, "Віджет" за
356356
```
357357

358358
`str.substring(start [, end])`
359-
: Повертає частину рядка *між* `start` та `end` (не включаючи `end`)..
359+
: Повертає частину рядка *між* `start` та `end` (не включаючи `end`).
360360

361-
Цей метод майже такий самий що і `slice`, але він дозволяє задати `start` більше ніж `end` (у цьому випадку він просто міняє значення `start` і `end` місцями).
361+
Цей метод майже такий самий як і `slice`, але `substring` дозволяє задати `start` більше значення, ніж `end` (у такому випадку він просто поміняє значення `start` і `end` місцями).
362362

363363
Наприклад:
364364

@@ -394,7 +394,7 @@ alert( "Від*!*жет*/!*".endsWith("жет") ); // true, "Віджет" за
394394
alert( str.substr(-4, 2) ); // 'gi', починаючи з позиції 4 з кінця отримуєму 2 символа
395395
```
396396

397-
Цей метод міститься в [Annex B](https://tc39.es/ecma262/#sec-string.prototype.substr) специфікації мови. Це означає, що лише рушії браузерного Javascript мають його підтримувати, і не рекомендується його використовувати. На практиці це підтримується всюди.
397+
Цей метод міститься в [Annex B](https://tc39.es/ecma262/#sec-string.prototype.substr) специфікації мови. Це означає, що його мають підтримувати лише браузерні рушії Javascript, і не рекомендується його використовувати. На практиці це підтримується всюди.
398398

399399
Давайте підсумуємо ці методи щоб не заплутатись:
400400

@@ -405,7 +405,7 @@ alert( "Від*!*жет*/!*".endsWith("жет") ); // true, "Віджет" за
405405
| `substr(start, length)` | `length` символів від `start` | дозволяє відʼємні значення `start` |
406406

407407
```smart header="Який метод вибрати?"
408-
Усі вони можуть виконати задачу. Формально `substr` має незначний недолік: він описаний не в основній специфікації JavaScript, а в Annex B, який охоплює лише функції браузера, які існують переважно з історичних причин. Тому не браузерні середовища, можуть не підтримувати його. Але на практиці це працює всюди.
408+
Усі вони можуть виконати задачу. Формально `substr` має незначний недолік: він описаний не в основній специфікації JavaScript, а в Annex B, яка охоплює лише функції браузера, які існують переважно з історичних причин. Тому не браузерні середовища, можуть не підтримувати його. Але на практиці це працює всюди.
409409
410410
З двох інших варіантів `slice` дещо гнучкіший, він допускає від'ємні аргументи та коротший в записі.
411411
@@ -424,15 +424,15 @@ alert( "Від*!*жет*/!*".endsWith("жет") ); // true, "Віджет" за
424424
alert( 'a' > 'Z' ); // true
425425
```
426426

427-
2. Літери з діакритичними знаками "не в порядку":
427+
2. Літери з діакритичними знаками "не по порядку":
428428

429429
```js run
430430
alert( 'Österreich' > 'Zealand' ); // true
431431
```
432432

433433
Це може призвести до дивних результатів, якщо ми відсортуємо ці назви країн. Зазвичай люди очікують, що `Zealand` буде після `Österreich`.
434434

435-
Щоб зрозуміти, що відбувається, давайте розглянемо внутрішнє представлення рядків у JavaScript закодованих за допомогою [UTF-16](https://uk.wikipedia.org/wiki/UTF-16). Тобто: кожен символ має відповідний числовий код..
435+
Щоб розуміти, що відбувається, нам слід бути в курсі, що рядки в JavaScript реалізовані з використанням [UTF-16](https://uk.wikipedia.org/wiki/UTF-16). Тобто, кожен символ має свій відповідний числовий код.
436436

437437
Існують спеціальні методи, які дозволяють отримати символ по коду і навпаки.
438438

@@ -444,7 +444,7 @@ alert( "Від*!*жет*/!*".endsWith("жет") ); // true, "Віджет" за
444444
alert( "z".codePointAt(0) ); // 122
445445
alert( "Z".codePointAt(0) ); // 90
446446
alert( "z".codePointAt(0) ); // 122
447-
alert( "z".codePointAt(0).toString(16) ); // 7a (if we need a hexadecimal value)
447+
alert( "z".codePointAt(0).toString(16) ); // 7a (якщо нам треба значення в шістнадцятковій системі числення)
448448
```
449449

450450
`String.fromCodePoint(code)`
@@ -464,12 +464,12 @@ for (let i = 65; i <= 220; i++) {
464464
str += String.fromCodePoint(i);
465465
}
466466
alert( str );
467-
// Output:
467+
// alert виведе:
468468
// ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„
469469
// ¡¢£¤\¦§ ̈©a«¬­® ̄°±23 ́μ¶· ×ばつØÙÚÛÜ
470470
```
471471
472-
Бачите? Спочатку вводяться великі символи, потім кілька спеціальних, потім символи нижнього регістру та `Ö` ближче до кінця виводу.
472+
Бачите? Спочатку виводяться великі символи, потім кілька спеціальних, потім символи нижнього регістру та `Ö` ближче до кінця виводу.
473473
474474
Тепер стає очевидним, чому `a > Z`.
475475
@@ -482,11 +482,11 @@ alert( str );
482482
483483
«Правильний» алгоритм порівняння рядків є складнішим, ніж може здатися, тому що для різних мов – різні алфавіти.
484484
485-
Отже, браузеру потрібно знати, яку мову використовувати для порівняння.
485+
Отже, браузеру потрібно знати алфавіт якої мови використовувати для порівняння.
486486
487487
На щастя, усі сучасні браузери підтримують стандарт інтернаціоналізації [ECMA-402](https://www.ecma-international.org/publications-and-standards/standards/ecma-402/).
488488
489-
Він забезпечує спеціальний метод для порівняння рядків різними мовами, дотримуючись їхніх правил.
489+
Він забезпечує спеціальний метод для порівняння рядків з різних мов, дотримуючись їхніх правил.
490490
491491
Виклик [str.localeCompare(str2)](mdn:js/String/localeCompare) повертає ціле число, яке вказує, чи є `str` меншим, рівним чи більшим за `str2` відповідно до правил мови:
492492
@@ -500,7 +500,7 @@ alert( str );
500500
alert( 'Österreich'.localeCompare('Zealand') ); // -1
501501
```
502502
503-
Цей метод насправді має два додаткові аргументи, зазначені в [документації](mdn:js/String/localeCompare), що дозволяє йому вказати мову (типово взяту з середовища, порядок букв залежить від мови) і встановити додаткові правила, як-от чутливість до регістру або чи слід розглядати різницю між `"a"` та `"á"`.
503+
Цей метод насправді має два додаткові аргументи, зазначені в [документації](mdn:js/String/localeCompare), що дозволяє явно вказати йому мову (яку він типово визначає опираючись на середовище. І від чого залежить порядок букв), і встановити додаткові правила, як-от чутливість до регістру або чи слід розглядати різницю між `"a"` та `"á"`.
504504
505505
## Підсумки
506506
@@ -510,7 +510,7 @@ alert( 'Österreich'.localeCompare('Zealand') ); // -1
510510
- Щоб отримати підрядок, використовуйте: `slice` або `substring`.
511511
- Щоб перевести рядок у нижній/верхній регістри, використовуйте: `toLowerCase/toUpperCase`.
512512
- Щоб знайти підрядок, використовуйте: `indexOf`, або `includes/startsWith/endsWith` для простих перевірок.
513-
- Щоб порівняти рядки з урахуванням правил мови, використовуйте: `localeCompare`, інакше вони порівнюються за кодами символів.
513+
- Щоб порівняти рядки з урахуванням правил мови, використовуйте `localeCompare`, інакше рядки порівнюються за кодами символів.
514514
515515
Є кілька інших корисних методів у рядках:
516516

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /