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
Получить символ, который занимает позицию `pos`, можно с помощью квадратных скобок: `[pos]`. Также можно использовать метод `charAt`: [str.charAt(pos)](mdn:js/String/charAt). Первый символ занимает нулевую позицию:
134
+
Получить символ, который занимает позицию `pos`, можно с помощью квадратных скобок: `[pos]`. Также можно использовать метод [str.at(pos)](mdn:js/String/at). Первый символ занимает нулевую позицию:
135
135
136
136
```js run
137
137
let str = `Hello`;
138
138
139
139
// получаем первый символ
140
140
alert( str[0] ); // H
141
-
alert( str.charAt(0) ); // H
141
+
alert( str.at(0) ); // H
142
142
143
143
// получаем последний символ
144
144
alert( str[str.length - 1] ); // o
145
+
alert( str.at(-1) );
145
146
```
146
147
147
-
Квадратные скобки — современный способ получить символ, в то время как `charAt` существует в основном по историческим причинам.
148
+
Как вы можете видеть, преимущество метода `.at(pos)` заключается в том, что он допускает отрицательную позицию. Если `pos` -- отрицательное число, то отсчет ведется от конца строки.
148
149
149
-
Разница только в том, что если символ с такой позицией отсутствует, тогда `[]` вернёт `undefined`, а `charAt` — пустую строку:
150
+
Таким образом, `.at(-1)` означает последний символ, а `.at(-2)` -- тот, что перед ним, и т.д.
151
+
152
+
Квадратные скобки всегда возвращают `undefined` для отрицательных индексов. Например:
150
153
151
154
```js run
152
155
let str =`Hello`;
153
156
154
-
alert( str[1000] ); // undefined
155
-
alert( str.charAt(1000) ); //'' (пустая строка)
157
+
alert( str[-2] ); // undefined
158
+
alert( str.at(-2) ); //l
156
159
```
157
160
158
161
Также можно перебрать строку посимвольно, используя `for..of`:
159
162
160
163
```js run
161
164
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" и т.д.)
0 commit comments