Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
программирование 4-10 подробная версия .docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
297.11 Кб
Скачать

4. Свойства и методы объекта String

Объект String является экземпляром класса String. Класс String является типом данных, представляющим строку символов. Класс String обладает методами и свойствами, позволяющими оперировать типами элементарных строковых значений.

Объект String или Строка представляет собой последовательность букв, цифр, знаков пунктуации

и прочих Unicode символов и является типом данных для представления текста.

Строковый литерал, т.е. значение объекта String, указанное непосредственно в тексте программы – это последовательность из нуля или более Unicode-символов, заключенная в одинарные или двойные кавычки (' или ").

Символ обратного слэша (\) имеет специальное назначение в строках некоторых языков программирования. С его помощью обозначаются управляющие символы, например:

\t Горизонтальная табуляция

\n Перевод строки

\v Вертикальная табуляция

\f Перевод страницы

\r Возврат каретки

\" Двойная кавычка

\' Одинарная кавычка

\\ Обратный слэш

Объект String имеет свойство length, которое определяет количество символов в строке. Обратиться к этому свойству можно так:

s.length

Объект String имеет различные методы, позволяющие оперировать со строками. В JavaScript определены следующие методы для работы со строками

  • charAt(n) - Извлекает из строки символ, находящийся в указанной позиции. n - индекс символа, который должен быть извлечен из строки.

  • charCodeAt( n) - Возвращает код символа, находящегося в указанной позиции. n - индекс символа, код которого должен быть получен.

  • concat(значение1,…) - Выполняет конкатенацию одного или нескольких значений со строкой. Метод concat() преобразует все свои аргументы в строки (если это нужно) и добавляет их по порядку в конец строки. Возвращает полученную объединенную строку. Конкатенацию также можно осуществить с помощью оператора «+».

  • fromCharCode(c1, c2, ...) - создает строку из кодов символов. В качестве аргументов используется ноль или более целых значений, задающих коды Unicode для символов создаваемой строки. Возвращаемое значение - новая строка, содержащая символы с указанными кодами.

Пример:

// Создает строку "hello"

var s = String.fromCharCode(104, 101, 108, 108, 111);

  • indexOf(подстрока, start) – Метод indexOf() выполняет поиск в строке от начала к концу, чтобы увидеть, содержит ли она искомую подстроку. Поиск начинается с позиции start в строке или с начала строки, если аргумент start не указан. Если подстрока найдена, String.indexOf() возвращает позицию первого символа первого вхождения подстроки в строке. Позиции символов в строке нумеруются с нуля. Если подстрока в строке не найдена, String.indexOf() возвращает 1.

  • lastIndexOf(подстрока, start) - Выполняет поиск символа или подстроки в строке с конца. lastIndexOf() просматривает строку от конца к началу, чтобы увидеть, содержит ли она подстроку. Поиск выполняется с позиции start внутри строки или с конца строки, если аргумент start не указан. Если подстрока найдена, Метод lastIndexOf() возвращает позицию первого символа этого вхождения. Метод выполняет поиск от конца к началу, поэтому первое найденное вхождение является последним в строке, расположенным до позиции start. Если подстрока не найдена, String.lastIndexOf() возвращает 1.

  • localeCompare(целевая_строка) - Сравнивает строки с учетом порядка следования символов национальных алфавитов. целевая_строка - это строка, сравниваемая со строкой с учетом порядка следования символов национальных алфавитов. Возвращается число, обозначающее результат сравнения. Если строка «меньше» целевой_строки, localeCompare() возвращает отрицательное число. Если строка «больше» целевой_строки, метод возвращает положительное число. Если строки идентичны или неразличимы в соответствии с региональными соглашениями о сортировке, метод возвращает 0.

  • match(regexp) - Выполняет поиск по маске с помощью регулярного выражения. Аргумент regexp – это объект RegExp , задающий шаблон для поиска. Если этот аргумент не является объектом RegExp, он сначала преобразуется с помощью конструктора RegExp(). Если в regexp нет атрибута g, match() ищет одно соответствие в строке. Если соответствие не найдено, match() возвращает null. В противном случае метод возвращает массив, содержащий информацию о найденном соответствии. Элемент массива с индексом 0 содержит найденный текст. Оставшиеся элементы содержат текст, соответствующий всем подвыражениям внутри регулярного выражения.

Пример

Следующий код, реализующий глобальный поиск, находит все числа в строке:

"1 plus 2 equals 3".match(/\d+/g) // Возвращает ["1", "2", "3"]

  • replace(regexp, замена) - Выполняет операцию поиска и замены с помощью регулярного выражения.

Метод replace() выполняет операцию поиска и замены для строки. Он ищет в строке одну или несколько подстрок, соответствующих регулярному выражению regexp, и заменяет их значением аргумента замена. Если в regexp указан глобальный атрибут g, replace() заменяет все найденные подстроки. В противном случае метод заменяет только первую найденную подстроку. Параметр замена может быть либо строкой, либо функцией. Если это строка, то каждое найденное соответствие заменяется указанной строкой.

  • search(regexp) - Ищет в строке подстроку, соответствующую регулярному выражению. Метод search() ищет подстроку в строке, соответствующую регулярному выражению regexp, и возвращает позицию первого символа найденной подстроки или 1, если соответствие не найдено. Метод не выполняет глобального поиска, игнорируя флаг g. Он также игнорирует свойство regexp.lastIndex и всегда выполняет поиск с начала строки, следовательно, всегда возвращает позицию первого соответствия, найденного в строке.

Пример

var s = "JavaScript is fun";

s.search(/script/i) // Возвращает 4

s.search(/a(.)a/) // Возвращает 1

  • slice(start, end) - Возвращает фрагмент строки или подстроку в строке. Метод slice() возвращает строку, содержащую фрагмент, или подстроку строки, но не изменяет строку. Методы slice(), substring() и признанный устаревшим метод substr() объекта String возвращают части строки. Метод slice() более гибок, чем substring(), поскольку допускает отрицательные значения аргументов. Метод slice() отличается от substr() тем, что задает строку с помощью двух символьных позиций, а substr() использует одно значение позиции и длину.

  • split(разделитель, лимит) - Разбивает строку на массив строк по указанной строке-разделителю или регулярному выражению. Разделитель - строка или регулярное выражение, по которому разбивается строка. Лимит – это необязательное целое, задающее максимальную длину полученного массива. Если этот аргумент указан, то количество возвращенных подстрок не будет превышать указанное. Если он не указан, разбивается вся строка независимо от ее длины. Возвращаемое значение – это массив строк, создаваемый путем разбиения строки на подстроки по границам, заданным разделителем.

Пример Метод split() наиболее полезен при работе с сильно структурированными строками:"1:2:3:4:5".split(":"); // Возвращает ["1","2","3","4","5"]

"|a|b|c|".split("|"); // Возвращает ["", "a", "b", "c", ""]

  • substr(начало, длина) - Извлекает подстроку из строки. Аналог метода substring().Метод substr() извлекает и возвращает подстроку строки. метод substr() задает нужную подстроку с помощью позиции символа и длины.

  • substring() - Извлекает подстроку из строки. Аргументы от - целое, задающее позицию первого символа требуемой подстроки внутри строки. До - Необязательное целое, на единицу большее позиции последнего символа требуемой подстроки. Если этот аргумент опущен, возвращаемая подстрока заканчивается в конце строки. Возвращаемое значение - новая строка длиной до от, содержащая подстроку строки. Новая строка содержит символы, скопированные из строки, начиная с позиции от и заканчивая позицией до –1. В отличие от методов String.slice() и String.substr(), String.substring() не может принимать отрицательные значения аргументов.

  • toLowerCase() - Возвращает копию строки, в которой все символы переведены в нижний регистр.

  • toString() - Возвращает элементарное строковое значение. Еесли метод вызывается для объекта, не являющегося объектом String то генерируется ошибка TypeError.

  • toUpperCase() - Возвращает копию строки, в которой все символы переведены в верхний регистр.

  • valueOf() - Возвращает элементарное строковое значение. Если метод вызывается для объекта, не являющегося объектом String то генерируется ошибка TypeError.

5. Арифметические и логические операции. Примеры их использования.

Арифметические операции:

Рассмотрим арифметические операции на примере языка JavaScript.

  • Операция Сложение (+)

Оператор «плюс» складывает числовые операнды или выполняет конкатенацию строк. Если одним из операндов является строка, другой операнд преобразуется в строку и выполняется конкатенация. Операнды-объекты преобразуются в числа или строки, которые могут быть сложены или конкатенированы.Преобразование выполняется с помощью методов valueOf() и/или toString().

  • Вычитание (-)

Когда «минус» используется в качестве двухместного оператора, он выполняет вычитание второго операнда из первого. Если указаны нечисловые операнды, то оператор пытается преобразовать их в числа.

  • Умножение (*)

Оператор * умножает два своих операнда. Нечисловые операнды он пытается

преобразовать в числа.

  • Деление (/)

Оператор / делит первый операнд на второй. Нечисловые операнды он пытается преобразовать в числа. Те, кто привык к языкам программирования, различающим целые и вещественные числа, могут ожидать получения целочисленного результата при делении одного целого на другое. Однако в JavaScript все числа вещественные, поэтому результатом любого деления является значение с плавающей точкой. Операция 5/2 дает 2.5, а не 2. Результат деления на ноль – плюс или минус бесконечность, а 0/0 дает NaN.

  • Деление по модулю (%)

Оператор % вычисляет остаток, получаемый при целочисленном делении первого операнда на второй. Если заданы нечисловые операнды, то оператор пытается преобразовать их в числа. Знак результата совпадает со знаком первого операнда, например 5 % 2 дает 1. Оператор деления по модулю обычно применяется к целым операндам, но работает и для вещественных значений. Например, -4.3 % 2.1 дает результат -0.1.

  • Унарный минус (_)

Когда минус используется в качестве унарного оператора, он указывается пе_

ред одиночным операндом и выполняет унарную операцию смены знака.

Другими словами, он преобразует положительное значение в отрицательное,

и наоборот. Если операнд не является числом, этот оператор пытается преоб_

разовать его в число.

  • Унарный плюс (+)

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

var profit = +1000000; В таком коде оператор «плюс» ничего не делает; результатом его работы является значение его аргумента. Однако нечисловые аргументы он преобразует в числа. Если аргумент не может быть преобразован, возвращается NaN.

  • Инкремент (++)

Этот оператор инкрементирует (т. е. увеличивает на единицу) свой единственный операнд, который должен быть переменной, элементом массива или свойством объекта. Если значение этой переменной, элемента массива или свойства не является числом, оператор сначала пытается преобразовать его в число. Точное поведение этого оператора зависит от его положения по отношению к операнду. Если поставить его перед операндом (префиксный оператор инкремента), то к операнду прибавляется 1, а результатом является увеличенное значение операнда. Если же он размещается после операнда (постфиксный оператор инкремента), то к операнду прибавляется 1, однако результатом является первоначальное значение операнда. Если увеличиваемоезначение не является числом, оно в процессе вычисления преобразуется в число. Например, следующий код делает переменные i и j равными 2:

i = 1;

j = ++i;

А этот устанавливает i в 2, а j в 1:

i = 1;

j = i++;