мое новое расписание: пн-пт с 8.00 по 16.00 по москве, сб и вс - выходные; после 16.00 и на вых. отвечаю по возможности

Получение символов строки на JavaScript

Пусть у нас есть какая-то строка. Каждый символ в этой строке имеет свой порядковый номер: первый символ номер 0, второй символ - номер 1, третий символ номер 2 и так далее.

Как вы уже заметили, нумерация символов начинается с нуля (ноль как начало нумерации часто встречается в программировании).

При необходимости можно получить доступ к определенному символу строки по его номеру. Для этого пишется имя переменный, после этого имени ставятся квадратные скобки и в этих скобках указывается номер символа.

Давайте посмотрим на примере. Пусть у нас дана вот такая строка:

let str = 'abcde'; // строка

Давайте обратимся к каким-нибудь символам этой строки:

let str = 'abcde'; // строка alert(str[0]); // выведет 'a' alert(str[1]); // выведет 'b' alert(str[2]); // выведет 'c'

Номер символа также может хранится и в переменной:

let str = 'abcde'; let num = 3; // номер символа в переменной alert(str[num]); // выведет 'd'

Дана строка 'abcde'. Обращаясь к отдельным символам этой строки выведите на экран символ 'a', символ 'c', символ 'e'.

Дана переменная со строкой 'abcde'. Обращаясь к отдельным символам этой строки запишите в новую переменную символы этой строки в обратном порядке, то есть 'edcba'.

Дана переменная str со строкой 'abcde' и переменная num с номером символа. Выведите на экран символ, номер которого хранится в переменной num.

Последний символ строки

Давайте выведем последний символ строки. При этом сделаем так, чтобы наш скрипт сам определял номер последнего символа, не зависимо от длины строки.

Пусть у нас есть такая строка:

let str = 'abcde';

Как вы видите, количество символов в этой строке равно 5. Если немного подумать, то становится очевидным, что номер последнего символа этой строки будет на 1 меньше ее длины, так как нумерация символов начинается с нуля.

Получается, что зная длину строки, мы можем отнять от нее 1 и получить номер последнего символа, а затем по этому номеру можно получить сам последний символ.

Как вы уже знаете, длину строки можно найти с помощью свойства length. Исходя из этого найдем номер последнего символа:

let str = 'abcde'; let last = str.length - 1; // номер последнего символа

Используем найденный номер для вывода символа на экран:

let str = 'abcde'; let last = str.length - 1; // номер последнего символа alert(str[last]); // выведет 'e'

Промежуточную переменную last можно и не вводить:

let str = 'abcde'; alert(str[str.length - 1]); // выведет 'e'

Дана строка. Выведите на экран ее последний символ.

Дана строка. Выведите на экран ее предпоследний символ.

Дана строка. Выведите на экран ее предпредпоследний символ.

Строки с цифрами

Пусть теперь у нас есть строка, содержащая только цифры.

let test = '12345'; // строка с цифрами

Давайте найдем, например, сумму первого и второго ее символов:

let test = '12345'; alert(test[0] + test[1]); // выведет '12' - суммирует как строки

Как вы видите, символы нашей строки также являются строками и суммируются как строки.

Пусть мы хотим суммировать их как числа. Используем для этого функцию Number:

let test = '12345'; // строка alert(Number(test[0]) + Number(test[1])); // выведет 3

Дана строка '12345'. Найдите сумму цифр этой строки.

Обращение к цифрам числа

Пусть теперь в переменной у нас хранится не число в кавычках, а просто число. В этом случае попытка обратится к его отдельному символу выдаст undefined, так как такое обращение работает только для строк:

let test = 12345; alert(test[0]); // выдаст undefined

Для решения проблемы преобразуем наше число в строку:

let test = String(12345); // строка alert(test[0]); // выведет '1' - все работает

Пусть мы теперь хотим найти сумму первых двух цифр:

let test = String(12345); // строка alert(test[0] + test[1]); // выведет '12' - суммирует как строки

Добавим функцию Number для того, чтобы символы суммировались как числа:

let test = String(12345); // строка alert(Number(test[0]) + Number(test[1])); // выведет 3

Напоминаю, что проблема такого рода возникнет только при суммировании. При умножении, например, преобразование к числам можно не выполнять:

let test = String(12345); // строка alert(test[1] * test[2]); // выведет 6

Дано число 12345. Найдите сумму цифр этого числа.

Дано число 12345. Найдите произведение цифр этого числа.

Дано число 12345. Переставьте цифры этого числа в обратном порядке.

Неизменяемость строк в JavaScript

Строки в JavaScript (в отличие, например, от PHP) неизменяемы:

let str = 'abcde'; // строка str[0] = '!'; // выдаст ошибку (в строгом режиме "use strict")