Урок №6: выражения в JavaScript
Выражение - это любой фрагмент исходного программного кода, который может быть использован для вычисления значения. Выражения могут быть построены из литералов, операторов, переменных и скобок. После вычисления выражения образуется единственное значение, данные значение может быть строкой, числом или логическим значением. Выражения бывают простые (первичные) и более сложные.
Разберем простейший пример, a + b = с. В данном примере a и b являются операндами, + является оператором (знаком операции), с - является результатом выражения.
Оператор - это символ, с помощью которого производятся различные виды вычислений, присваиваний или сравнений при участии одного или нескольких операндов. Операнды - это значения которые расположены слева и справа от оператора. В данной статье рассмотрим типы операторов и примеры с ними.
Арифметические операторы
В JavaScript имеются следующие арифметические операторы:
Операция |
Описание |
Примеры |
Результаты |
+ |
операция сложения |
4+3 |
7 |
- |
операция вычитания |
4-3 |
1 |
* |
операция умножения |
4*3 |
12 |
/ |
операция деления |
4/3 |
1.33 |
% |
остаток от деления целых чисел |
4%3 |
1 |
++ |
инкремент - увеличение значения операнда на единицу |
4++ |
5 |
-- |
декремент - уменьшение значения операнда на единицу |
4-- |
3 |
Операторы в выражении вычисляются стандартно - слева на право, с учетом приоритетов арифметических операций. Как и в элементарной арифметике, порядок вычисления возможно изменять, использовав скобки.
x = a + y * b;
x = (a + y) * b;
Пример записи арифметических выражений:
var numb1 = 7;
var numb2 = 3;
var numb3 = 5
document.write(numb1 + numb2 + "<br>");
document.write(numb1 - numb2 + "<br>");
document.write(numb1 * numb2 + "<br>");
document.write(numb1 / numb2 + "<br>");
document.write(numb3 % numb2 + "<br>");
document.write(-numb3 % numb2);
Такие арифметические операторы как, сложение, вычитание, деление и умножение работают так же, как и в элементарной математике. Остаток от деления целых чисел получается за счет деления одного операнда на другой, например: 5/2=2 и остаток 1. Инкремент и декремент работают аналогично друг другу, разница только в том, что инкремент(++) увеличивает число на одну единицу, а декремент(--) - уменьшает. Пример:
var x = 3;
alert(x++);
alert(x);
Первое всплывающее окно отобразит цифру 3, а уже второе - цифру 4. В примере использована постфиксная форма инкремента (x++). Префиксная форма инкремента несколько отличается (++x) и сразу увеличивает число на единицу, пример:
var x = 3;
alert(++x);
Операторы декремента (--) работают аналогично операторам инкремента(++), разница только в том, что декремент уменьшает значение на одну единицу. Например:
var x = 3;
alert(--x);
Операторы сравнения
В JavaScript имеются следующие операторы сравнения:
Операция |
Описание |
Примеры |
Результаты |
== |
равно |
4==3 |
false |
!= |
не равно |
4!=3 |
true |
> |
больше чем ... |
4>3 |
true |
< |
меньше чем ... |
4<3 |
false |
>= |
больше чем ... или равно |
4>3 |
true |
<= |
меньше чем ... или равно |
4<=3 |
false |
=== |
абсолютно идентично |
4==="4" |
false |
!== |
не идентично |
4!=="4" |
true |
Если в результате стоит значение true, значит утверждение примера верно(правдиво), если же false - то утверждение ошибочное(ложь). Давайте разберем каждую операцию более подробно и с примерами.
Операция эквивалентности(==) и операция идентичности(===) используют разные способы для нахождения совпадения между объектами. Оператор идентичности (===) строго проверяет равенство значений не используя никаких преобразований типов для своих объектов(операндов). Оператор эквивалентности(==) менее строг и разрешает преобразование типов своих объектов(операндов) при сравнении их значений. Данные операторы равенства работают со всеми типами данных и операндами любого вида, также, если значения их операндов совпадают возвращают true, если же не совпадают - false.
Достаточно только взглянуть на примеры сравнения с использованием операндов идентичности и эквивалентности. Ниже, в примере, используется операция идентичности (===).
var x = {x: 2};
var y = x;
'7' === 7 // false - разные типы данных
null === null // true
undefined === undefined // true
true === true // true
false === false // true
NaN === NaN // false
(2 + 2) === 4 // true - два одинаковых числа
0 === -0 // true
'строка' === 'Строка' // false - первые символы строки разные
{x: 2} === {x: 2} // false
x === y // true - ссылаются на один объект
Ниже в примере используется операция эквивалентности:
null == undefined // true
"123" == 123 // true
true == "1" // true
false == 0 // true
(4+2) == 6 // true
"my car" == "my car" // true
4 == 5 // false
Операторы неидентичности(!==) и неравенства(!=) работают, аналогично операторам (===) и (==), только в точной противоположности. К примеру, оператор (!=) возвращает false, если оператор (==) считает два значения равными. Остальные операторы сравнения работают также как в элементарной математике и не имеют особенностей.
Логические операторы
В JavaScript имеются следующие логические операторы:
Оператор |
Название |
Примеры использования |
Описание true/false |
&& |
AND (и) |
fbi_1 && fbi_2 |
если оба выражения fbi_1 и fbi_2 равны true; false в противном случае |
|| |
OR (или) |
fbi_1 || fbi_2 |
если хотя бы одно из выражений fbi_1 или fbi_2 равно true; false в противном случае |
! |
NOT (не) |
!fbi |
true если выражение fbi равно false; false - если выражение fbi равно true |
Оператор И (&&) выполняет логическую операцию И над двумя операндами между оператором. Работа его начинается с вычисления левого операнда. Если значение левого операнда можно преобразовать в false - то значение левого операнда будет возращено, и при этом значение правого операнда не будет вычисляться.
Оператор ИЛИ (||) выполняет логическую операцию ИЛИ над двумя операндами между оператором. Работа его начинается с вычисления левого операнда. Если значение левого операнда можно преобразовать в true - то значение левого операнда будет возращено, и при этом значение правого операнда не будет вычисляться.
Оператор НЕ (!) является унарным. Его используют для инверсии логического значения операнда. Перед инверсией, если необходимо, данный оператор преобразует значение своего операнда в булево. К примеру, если изначально переменная "z" имеет значение true, или любое другое значение, которое можно преобразовать в true, то при выражении !z, вернется значение false. Если же переменная "z" изначально имеет значение false, то выражение !z вернет противоположное значение true.
Приоритеты выполнения операций
Углубляться в тему не будем, так как по ней написано очень много теоретических материалов. Главное запомнить порядок выполнения операций в выражениях. Для этого можно воспользоваться следующей таблицей.
Операция |
Описание |
++ |
инкремент |
-- |
декремент |
! |
отрицание |
- |
унарный минус |
* |
умножение |
/ , % |
деление, остаток от деления |
+ |
сложение |
- |
вычитание |
<, >, <=, >= |
сравнение "больше, меньше или/и равно" |
== |
равенство |
!= |
не равенство |
&& |
логическое "И" ("and") |
|| |
логическое "Или" ("or") |
=, +=, -=, *=, /=, %=, != |
присваивание |
Стоит заметить, на данном уроке были рассмотрены далеко не все операторы. Существуют побитовые операторы, которые дают возможности осуществлять низкоуровневые манипуляции с двоичными числами. Побитовые операторы при программировании на JavaScript используются крайне редко. Также существуют условные операторы, операторы запятые и пр., мы однозначно еще к ним вернемся и рассмотрим. Далее рассмотрим события в JavaScript.
На следующем уроке рассмотрим функции в JavaScript, а также примеры функций: Функции в JavaScript
|