Skip to content

Commit 594e98b

Browse files
authored
Описание метода .at()
1 parent 7766b91 commit 594e98b

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

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

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -131,35 +131,38 @@ alert( `My\n`.length ); // 3
131131
132132
## Доступ к символам
133133
134-
Получить символ, который занимает позицию `pos`, можно с помощью квадратных скобок: `[pos]`. Также можно использовать метод `charAt`: [str.charAt(pos)](mdn:js/String/charAt). Первый символ занимает нулевую позицию:
134+
Получить символ, который занимает позицию `pos`, можно с помощью квадратных скобок: `[pos]`. Также можно использовать метод [str.at(pos)](mdn:js/String/at). Первый символ занимает нулевую позицию:
135135
136136
```js run
137137
let str = `Hello`;
138138
139139
// получаем первый символ
140140
alert( str[0] ); // H
141-
alert( str.charAt(0) ); // H
141+
alert( str.at(0) ); // H
142142
143143
// получаем последний символ
144144
alert( str[str.length - 1] ); // o
145+
alert( str.at(-1) );
145146
```
146147

147-
Квадратные скобки — современный способ получить символ, в то время как `charAt` существует в основном по историческим причинам.
148+
Как вы можете видеть, преимущество метода `.at(pos)` заключается в том, что он допускает отрицательную позицию. Если `pos` -- отрицательное число, то отсчет ведется от конца строки.
148149

149-
Разница только в том, что если символ с такой позицией отсутствует, тогда `[]` вернёт `undefined`, а `charAt` — пустую строку:
150+
Таким образом, `.at(-1)` означает последний символ, а `.at(-2)` -- тот, что перед ним, и т.д.
151+
152+
Квадратные скобки всегда возвращают `undefined` для отрицательных индексов. Например:
150153

151154
```js run
152155
let str = `Hello`;
153156

154-
alert( str[1000] ); // undefined
155-
alert( str.charAt(1000) ); // '' (пустая строка)
157+
alert( str[-2] ); // undefined
158+
alert( str.at(-2) ); // l
156159
```
157160

158161
Также можно перебрать строку посимвольно, используя `for..of`:
159162

160163
```js run
161164
for (let char of "Hello") {
162-
alert(char); // H,e,l,l,o (char — сначала "H", потом "e", потом "l" и т. д.)
165+
alert(char); // H,e,l,l,o (char — сначала "H", потом "e", потом "l" и т.д.)
163166
}
164167
```
165168

@@ -544,7 +547,7 @@ alert( 'Österreich'.localeCompare('Zealand') ); // -1
544547
- Есть три типа кавычек. Строки, использующие обратные кавычки, могут занимать более одной строки в коде и включать выражения `${…}`.
545548
- Строки в JavaScript кодируются в UTF-16.
546549
- Есть специальные символы, такие как разрыв строки `\n`.
547-
- Для получения символа используйте `[]`.
550+
- Для получения символа используйте `[]` или метод `at`.
548551
- Для получения подстроки используйте `slice` или `substring`.
549552
- Для того, чтобы перевести строку в нижний или верхний регистр, используйте `toLowerCase/toUpperCase`.
550553
- Для поиска подстроки используйте `indexOf` или `includes/startsWith/endsWith`, когда надо только проверить, есть ли вхождение.

0 commit comments

Comments
 (0)