Выразительный JavaScript.

Строки и их свойства.

Мы можем получать значения свойств строк, например length и toUpperCase. Но попытка добавить новое свойство ни к чему не приведёт:

Var myString = "Шарик";

MyString.myProperty = "значение";

Console.log(myString.myProperty);

// → undefined.

Величины типа строка, число и булевские – не объекты, и хотя язык не жалуется на попытки назначить им новые свойства, он на самом деле их не сохраняет. Величины неизменяемы.

Но у них есть свои встроенные свойства. У каждой строки есть набор методов. Самые полезные, пожалуй – slice и indexOf, напоминающие те же методы у массивов.

Console.log("кокосы".slice(3, 6));

// → осы.

Console.log("кокос".indexOf("с"));

// → 4.

Разница в том, что у строки метод indexOf может принять строку, содержащую больше одного символа, а у массивов такой метод работает только с одним элементом.

Console.log("раз два три".indexOf("ва"));

// → 5.

Метод trim удаляет пробелы (а также переводы строк, табуляцию и прочие подобные символы) с обоих концов строки.

Console.log(" ладно \n ".trim());

// → ладно.

Мы уже сталкивались со свойством строки length. Доступ к отдельным символам строчки можно получить через метод charAt, а также просто через нумерацию позиций, как в массиве:

Var string = "abc";

Console.log(string.length);

// → 3.

Console.log(string.charAt(0));

// → a.

Console.log(string[1]);

// → b.