Здравствуйте, уважаемые посетители моего скромного блога для начинающих вебразработчиков и web мастеров ZametkiNaPolyah.ru. Продолжаем рубрику Заметки по JavaScript и продолжаем тему JavaScript операторы, начатую в прошлой публикации. Ранее в этой рубрике появились публикации: JavaScript числа, JavaScript строки и символы, преобразование число в строку и строку в число, типы данных JavaScript и способы вставки JavaScript в HTML.

JavaScript операторы – эта тема данной публикации. Сегодня я постараюсь подробно, простым и понятным языком рассказать об операторах, которые не вошли ни в одну из групп JavaScript операторов описанных в прошлой статье. В этой публикации мы подробно разберем тернарный оператор JavaScript, его назначение и особенности работы. Оператор typeof – унарный JavaScript оператор, который предназначен для определения типа данных JavaScript операнда. В этой статье будет описан оператор создания JavaScript объекта new и рассмотрены все особенности его применения.

Операторы JavaScript. Другие JavaScript операторы. Void JavaScript. Delete JavaScript. New JavaScript. Typeof JavaScript.

Не обойдем мы стороной и оператор delete, унарный оператор, предназначенный для удаления свойств объектов JavaScript, элементов массива JavaScript, переменных JavaScript и т.д. В прошлой статье я не успел рассказать про оператор void – это унарный оператор и он выполняет специфическую функцию, оператор void берет значение своего операнда и заменяет его на специальное значение JavaScript undefined. JavaScript оператор запятая также будет  подробно рассмотрен в этой публикации. Рассмотрим оператор предназначенный для вызова JavaScript функции. И поговорим о двух JavaScript операторах, которые предназначены для получения доступа к массивам и объектам, их элементам и свойствам.

Обращение к подписчикам: Ребят, постоянные посетители и подписчики моего блога, сейчас у меня не так много времени на то, чтобы писать и добавлять публикации. В связи с этим, я хотел бы обратиться к Вам. Прошу написать вас в комментариях под этой записью то, о чем бы вы хотели прочитать и в чем бы вы хотели разобраться, естественно, темы должны быть каким-либо образом связаны с тематикой моего ресурса. А я в свою очередь постараюсь уделить время вашим пожеланиям в ближайшее время. По-моему, будет весело создать интерактивный блог, в котором будут публикации по Вашим заявкам.

JavaScript оператор запятая.

Начну я с самого простого оператора из перечисленных выше. JavaScript оператор запятая – это бинарный оператор. Довольно необычный JavaScript оператор и применяется оператор запятая крайне редко. Чаще всего оператор запятая используют вместе с JavaScript инструкцией цикла for.

Оператор запятая является бинарным, следовательно, ему необходимо для выполнения два операнда, тип данных для оператора запятая может быть любым. JavaScript оператор запятая берет и просто определяет значение левого операнда, затем он определяет значение правого операнда и, собственно, возвращает значение правого операнда.

[php]

number=12, str=”строка”;

[/php]

В данном случае оператор запятая вернет значение переменной str, то есть JavaScript строку. По сути, данная запись это запись двух отдельных JavaScript инструкций:

[php]

number=12;

str=”строка”;

[/php]

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

JavaScript оператор вызова функций ().

JavaScript оператор вызова функций очень часто используется на практике. Оператор вызова функций уникален тем, что количество операндов для него не фиксировано. Для оператора вызова функций обязателен один операнд – это имя JavaScript функции, имя функции пишется слева от скобок – это особенность лексической структуры языка JavaScript. Внутри скобок могут находиться несколько операндов – это аргументы, которые передаются JavaScript функции, в качестве аргументов функций JavaScript могут выступать любые типы данных JavaScript в том числе: функции, объекты, массивы, JavaScript выражения, JavaScript переменные и т.д.

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

Пример операторов вызова функций JavaScript:

[php]

Math.sin (y);

document.write (“Hello, world!”);

[/php]

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

Оператор void JavaScript.

Оператор void JavaScript – это унарный оператор, то есть он может выполнять действия с одним операндом. Оператор void может работать с любым типом данных JavaScript. Синтаксис оператора void JavaScript очень прост: пишется ключевое слово void, ставится пробел, а затем пишется операнд для оператора void.

Действие оператора void в JavaScript довольно таки необычное: оператор void просто берет и заменяет значение своего операнда на специальное значение JavaScript undefined. Оператор void вы можете встретить в клиентских JavaScript программах при работе по псевдопротоколу javascript:, о котором я еще не успел рассказать на страницах своего блога. Оператор void используется для того, чтобы не отображать пользователю результаты вычисления программы.

Опытные JavaScript разработчики используют оператор void, чтобы намеренно присвоить значение undefined какой-либо переменной в коде своих программ. Но, чаще всего оператор void встраивается в HTML теги, например в тег <a>.

Условный оператор JavaScript (?:). Тернарный оператор JavaScript.

Условный оператор JavaScript или тернарный оператор JavaScript – это уникальный JavaScript оператор, так как это единственный тернарный оператор. Тернарный оператор использует в своих операциях три операнда. Условный оператор используется вместо JavaScript инструкции if. Но, это понятно и из названия оператора, иногда краткая запись с использованием тернарного оператора бывает удобна.

Результатом работы условного оператора является значение логической истинности true или false, которое зависит от результата сравнения. А точнее результат работы условного оператора зависит от первого операнда. Первый операнд условного оператора должен быть логическим значением, либо он должен преобразовываться в логическое значение (такая вольность имеет место быть, потому что JavaScript слаботипизированный язык, а интерпретатор JavaScript преобразовывает типы данных по мере надобности автоматически). Если первый операнд оператора сравнения имеет или преобразуется в значение true, то в результате мы получим значение true, а если первый операнд имеет значение flase, то результатом будет значение третьего операнда условного оператора, и никак иначе.

Следует сказать о синтаксической особенности условного оператора JavaScript. ?: — это условный оператор, перед символом вопроса находится первое JavaScript выражение, между символом ? и двоеточием располагается второй операнд, и после двоеточия располагается третье JavaScript выражение:

[php]

Vorony=12;

str = “На ветке сидит ”+ (Vorony != null ? Vorony : 0);

[/php]

Нам интересна вторая строка программы, так как в первой строке мы создаем и инициализируем JavaScript переменную при помощи оператора присвоения. Во второй строке кода мы создаем и инициализируем переменную, заодно переводим число в строку и используем оператор условия JavaScript, которые проверяет: равно ли значение переменной специальному значению null и если значение не равно null, то к первой части JavaScript строки будет добавлено то, что хранится в переменной Vorony, если же нет, то в строку добавится значение 0, поскольку это значение третьего операнда.

Данную запись можно легко заменить при помощи JavaScript инструкций if и else:

[php]

vorony = 12;

str = “На ветке сидит ”;

if (vorony != null)

str += vorony;

else

str += 0;

[/php]

Разница лишь в том, что в данном случае мы используем JavaScript оператор присваивания с операцией, JavaScript инструкцию if и вместо двух строк кода у нас получилось целых шесть строк, а результат будет тот же самый.

Оператор typeof JavaScript.

Оператор typeof JavaScript – это унарный оператор, то есть оператор typeof выполняет операции с одним операндом. Оператор typeof может работать с любым типом данных JavaScript. Ну еще бы, ведь оператор typeof предназначен для определения типа данных операнда JavaScript.

В качестве результата своей работы оператор typeof JavaScript выдает строку с названием типа данных: “boolean”, “string” и т.д., в зависимости от того, какой тип данных имеет операнд typeof. Особенностью работы оператора typeof является то, что для специального значения JavaScript null результатом вычислений оператора typeof будет строка “object”, так же как и для массивов, объектов. JavaScript функции оператор typeof определяет как “function”. В случае, когда операндом является регулярное выражение, оператор typeof определит его как “object”.

[php]

typeof n;

typeof (k);

[/php]

Таким образом, можно определять тип данных, хранящийся в переменных JavaScript, оба варианта имеют место быть и вы можете пользоваться любым из них, результат будет одинаковым. Недостатком оператора typeof является то, что он не может отличить один объектный тип данных JavaScript от другого, во всех случаях оператор typeof выдает строку “object”.

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

Оператор delete JavaScript.

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

Оператор delete JavaScript в случае успешного удаления вернет логическое значение JavaScript true, в случае неудачи, оператор delete вернет значение false.

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

В случае если вы по каким-то причинам решили удалить не существующую переменную или несуществующий элемент массива, то оператор delete вернет значение true. Хоть оператор delete удаляет любые типы данных, но оператор delete может удалять только JavaScript переменные, свойства объектов или элементы массивов.

[php]

delete 1; //оператор delete не удалит 1, но вернет значение true

n=1;

delete n; //оператор delete удалит переменную n и вернет значение true

[/php]

Заметьте, оператор delete работает не так, как оператор void, он не присваивает значение undefined, а полностью удаляет из памяти переменную, элемент массива или свойство объекта.

Операторы доступа к объектам и массивам JavaScript. Доступ к массивам и объектам JavaScript.

 Операторы доступа к массивам и объектам JavaScript – это довольно необычные операторы, оператор доступа к массивам, точнее к элементам массива – это квадратные скобки ([]), а оператор для доступа к свойствам JavaScript объекта – это точка (.).

Оператор доступа к объектам JavaScript и их свойствам – это бинарный оператор, ему необходимо два операнда. В качестве первого операнда для оператора доступа к объектам выступает имя объекта, которое пишется слева от точки, а справа от точки следует писать имя свойства, к которому мы хотим обратиться:

[php]

document.write ();

[/php]

Если объект не имеет указанного свойства, то оператор доступа к объектам вернет специальное значение undefined, но при этом не произойдет никаких ошибок.

Оператор доступа к массивам JavaScript и их элементам – это квадратные скобки ([]), квадратные скобки используются для получения доступа к элементу массива, слева от скобок должно находиться имя массива, а внутри скобок должен находиться идентификатор, который позволяет определить к какому элементу массива мы хотим обратиться.

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

[php]

mas[5]; //так мы можем получить доступ к 6 элементу массива

x = 11;

new_mas[x]; //получаем доступ к 12 элементу массива JavaScript

a=2;

b=9;

massiv[a*b]; //получаем доступ к 19 элементу массива при помощи JavaScript выражения

[/php]

Если в качестве левого операнда оператора доступа к массивам JavaScript будет выступать JavaScript объект, то второй операнд должен быть строкой JavaScript, заключенной в кавычки, либо JavaScript выражением, результатом которого будет строка. Эта строка должна соответствовать имени свойства объекта, к которому мы хотим обратиться.

[php]new_obj[“value1”][/php]

Такой способ обращения к элементам массива и свойствам объекта (когда идентификатором является строка) используется для обращения к элементам ассоциативного массива JavaScript, к таким элементам невозможно получить доступ с помощью оператора доступа к объектам, так как имена элементов ассоциативного массива JavaScript генерируются динамически, например, когда вы используете инструкцию цикла for/in.

На этом всё, спасибо за внимание, надеюсь, что был хоть чем-то полезен и до скорых встреч на страницах блога для начинающих вебразработчиков и вебмастеров ZametkiNaPolyah.ru. Не забываем комментировать и делиться с друзьями;)

Возможно, эти записи вам покажутся интересными


Выберете удобный для себя способ, чтобы оставить комментарий

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Loading Disqus Comments ...