JavaScript - Объекты

Объект – это такая сущность (структура), которая объединяет внутри себя сразу несколько переменных (свойств) и функций (методов).

Например, у Вас есть объект "Ноутбук", который имеет следующие параметры: марка, производитель, размер экрана, объем жесткого диска и т.д. Вы хотите, чтобы вся эта информация была каким-то образом связана. Если поступить так, как мы делали это раньше, т.е. для каждого параметра объекта "Ноутбук" завести отдельную переменную, то получится что все эти переменные будут существовать отдельно друг от друга. А у нас эта информация должна быть логически связана и представлять некоторый объект "Ноутбук". Т.е. нам бы хотелось в одной переменной ("Ноутбук") сохранить много различных значений (марка, производитель, размер экрана, объем жесткого диска и т.д.). В JavaScript это можно осуществить посредством объектов.

Если провести некоторое сравнение, то переменную можно представить в виде ящичка с названием и значением, которое хранится внутри него. А объект - мешочком, внутри которого лежит много этих ящичков (переменных).

Понятие объекта

У нас получилось что-то наподобие двухуровневой системы. Т.е. объект является переменной и данные внутри него тоже являются переменными. Переменные, которые упакованы внутри объекта, называются свойствами этого объекта. Т.е. свойство – это некоторая переменная, которая находится внутри этого объекта. Объект может состоять из произвольного количества свойств.

Если перейти к нашему примеру, то наш объект "Ноутбук" – является сложной переменной, у которой будут следующие свойства: марка, производитель, размер экрана, объем жесткого диска и т.д.

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

Например: Для нашего примера необходимо создать функцию, которая будет выводить характеристики конкретного ноутбука на экран. Если воспользоваться обычной функций, то чтобы это осуществить ей необходимо будет передать свойства этого объекта в качестве параметров. Более простым вариантом будет использование метода, т.к. он имеет доступ напрямую к переменным (свойствам) этого объекта, и их не надо будет передавать в виде параметров.

Объект – это некоторая сущность, состоящая из свойств (данных) и методов (функций, предназначенных для обработки этих данных).

Объекты на языке JavaScript необходимо создавать с помощью оператора new. После этого оператора необходимо вызвать конструктор, т.е. специальную функцию, которая конструирует этот объект. Конструктор предназначен для создания этого объекта и наполнения его нужными свойствами и методами.

Создание объекта на языке JavaScript

В вышеприведенном примере переменная myNotebook является экземпляром объекта Notebook (Ноутбук). Для доступа к свойствам и методам объекта myNotebook используется точка (.) , которая ещё называется операцией разыменовывания. Т.е. получается, чтобы перейти от объекта (мешочка) к свойству или методу (коробочки) необходимо использовать операцию разыменовывания.

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

В JavaScript всё является объектами, даже те типы данных, которые мы рассматривали на предыдущих уроках. В следующем разделе этого урока мы рассмотрим типы данных Number и Boolean как объекты языка JavaScript.

В предыдущих уроках при создании переменных мы использовали более короткий формат записи. На этом уроке мы рассмотрим, как можно объявить и инициализировать переменные, используя полный формат записи.

//короткий формат
var a = 20;
//полный формат
var b = new Number (20);
var c = new Number();
var d = new Boolean (true);
//Вывод значений на экран
document.write("a = " + a.toString());
document.write("
"); document.write("b = " + b.toString()); document.write("
"); document.write("c = " + c.toString()); document.write("
"); document.write("d = " + d.toString());

JavaScript - Объекты Number и Boolean

Метод toString(), предназначенный для преобразования значения переменной в строку. Данный метод есть у большинства типов данных. Иногда данный метод может использоваться неявно, например: в методе write объекта document. На самом деле данный метод может выводить только строку, и когда мы в качестве параметра, например, подставляем число, то с помощью метода toString() оно переводится в строку.

Создание строки:

//короткий вариант записи
var myStroka = "Моя строка текста";
//полный вариант записи
var myStroka = new String("Моя строка текста");

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

//полный вариант записи
var myStroka = new String("Моя строка текста");
//Количество символов в строке
var count = myStroka.length;
//выводим значение на экран
document.write("Количество символов: " + count.toString());

У объекта String есть много методов, которые предназначены для выполнения различных операций над строками.

  • Метод chartAt. Он предназначен для извлечения символа из строки по его порядковому номеру. Отсчёт ведётся с 0.
  • Метод concat. Он предназначен для конкатенации (сложения) строк.
  • Метод fromCharCode. Он предназначен для получения символа по его коду в кодировке Unicode.
  • Метод indexOf. Он предназначен для поиска вхождения подстроки, указанной в качестве параметра, в строку. Данный метод возвращает индекс символа, с которого начинается это вхождение. Возвращает -1 если подстрока в строке не найдена.
  • Метод lastIndexOf. Он аналогичен методу indexOf за исключением того, что поиск начинается не сначала,а с конца строки.
  • Метод replace. Он предназначен для замены подстроки, найденной в строке, на другую строку. Т.е. в 1 параметре задаём подстроку, которую необходимо найти в строке. А во 2 параметре строку, на которую надо заменить подстроку, найденную в строке. Данный метод осуществляется поиск с начала строки и заменяет только первое вхождение подстроки в строку. Если в результате поиска искомая подстрока в строке не найдена, то никакой замены не происходит.
  • Метод split. Он предназначен для разделения строки на части в зависимости от заданного символа. Результатом выполнения метода является массив строк.
  • Метод substr. Он предназначен для возвращения подстроки, которая определяется путем указания индекса строки и длины подстроки. Индекс предназначен для определения начала подстроки и задаётся в 1 параметре. Длина подстроки определяет, какое количество символов будет она содержать. Она задаётся во 2 параметре.
  • Метод substring. Данный метод аналогичен методу substr, но вместо длины подстроки указывается индекс символа строки, до которого необходимо строку вырезать. Данный индекс задаётся во 2 параметре.
  • Метод toLowerCase. Он предназначен для преобразования всех символов строки в строчные.
  • Метод toUpperCase. Он предназначен для преобразования всех символов строки в прописные.
//полный вариант записи
var myStroka = new String("Моя строка текста");
document.write(myStroka);
document.write("<br>");
document.write(myStroka.charAt(7));
document.write("<br>");
document.write(myStroka.indexOf("ст"));
document.write("<br>");
document.write(myStroka.lastIndexOf("ст"));
document.write("<br>");
document.write(myStroka.replace("Моя","Ваша"));
document.write("<br>");
document.write(myStroka.substr(6,3));
document.write("<br>");
document.write(myStroka.substring(6,9));
document.write("<br>");
document.write(myStroka.toLowerCase());
document.write("<br>");
document.write(myStroka.toUpperCase());
document.write("<br>");
document.write(myStroka.concat("!"));
document.write("<br>");
document.write(String.fromCharCode(120));
document.write("<br>");

JavaScript - Методы объекта String



   JavaScript и jQuery 0    1951 0

Комментарии (5)

  1. Виталик # 0
    чтобы ни не занимали память
    исправьте пожалуйста
    1. Александр Мальцев # 0
      Спасибо, исправил.
    2. Иван # 0
      Очень просто и доходчиво, спасибо автору!
      1. Дмитрий # 0
        А как удалить все теги из строки, по аналогии с функцией в php — strip_tags
        1. Александр Мальцев # 0
          Попробуйте для этого использовать методы textContent и innerText.
          Можно например для этого создать функцию, которая будет возвращать переданную ей строку, но уже без тегов.
          <script>
          //функция для убирания из строки html тегов
          function strip_tags(html) {
            var tmp = document.createElement("DIV");
            tmp.innerHTML = html;
            return tmp.textContent || tmp.innerText || "";
          }
          // некоторая строка содержащая html код
          var html ='<h2 class="page-header">Понятие объекта</h2>';
          // убрать из строки html-теги
          var output = strip_tags(html);
          // вывести содержимое строки в консоль
          console.log(output);
          </script>
          

        Вы должны авторизоваться, чтобы оставлять комментарии.