Логически операторы в JavaScript
JavaScript Сравнения и логические операторы
Сравнение и логические операторы используются для проверки на true или false .
Оператор сравнения
Операторы сравнения используются в логических операторах для определения равенства или различия между переменными или значениями.
Учитывая, что x = 5 , в таблице ниже объясняются операторы сравнения: Если x = 5 , в таблице ниже описаны операторы сравнения:
Операторы | Описание | Сравнение | Возврат | Редактор кода | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
== | равно | x == 8 | false | Редактор кода » | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
x == 5 | true | Редактор кода » | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
x == «5» | true | Редактор кода » | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
=== | равное и равный тип | x === 5 | true | Редактор кода » | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
x === «5» | false | Редактор кода » | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
!= | не равно | x != 8 | true | Редактор кода » | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
!== | не равное или не равный тип | x !== 5 | false | Редактор кода » | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
x !== «5» | true | Редактор кода » | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
x !== 8 | true | Редактор кода » | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
> | больше | x > 8 | false | Редактор кода » | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
= | больше или равно | x >= 8 | false | Редактор кода » | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Оператор | Описание | Пример | Редактор кода |
---|---|---|---|
&& | И | (x 1) будет true | Редактор кода » |
|| | ИЛИ | (x == 5 || y == 5) будет false | Редактор кода » |
! | НЕ | !(x == y) будет true | Редактор кода » |
Условный (троичный) оператор
Кроме того, JavaScript содержит условный оператор, который присваивает значение переменной на основе некоторого условия.
Синтаксис
Пример
Сравнение различных типов
Сравнение данных разных типов может дать неожиданные результаты.
При сравнении строки с числом JavaScript преобразует строку в число при сравнении. Пустая строка превращается в 0. Нечисловая строка преобразуется в NaN, которая всегда false.
Пример | Значение | Редактор |
---|---|---|
2 «Андрей» | false | Редактор кода » |
2 == «Андрей» | false | Редактор кода » |
«2» «12» | true | Редактор кода » |
«2» == «12» | false | Редактор кода » |
При сравнении двух строк, то «2», будет больше, чем на «12» и, поскольку (в алфавитном порядке) 1 меньше 2.
Для обеспечения правильного результата переменные должны быть преобразованы в правильный тип перед сравнением:
Множественные условия в Javascript — Логические операторы И — ИЛИ
Урок №2 Операторы И ИЛИ
Количество просмотров : 3808
Продолжаем изучать условия в JavaScript . И здесь мы поговорим о множественных условиях и логических операторах И и ИЛИ .
Давайте снова вернёмся к реальной жизни — вспомним пример из предыдущей темы.
Если вечером будет ясно, то мы пойдём в парк .
В этом примере мы имеем дело лишь с одной переменной — pogoda . Если погода ясная, то мы идём в парк. И это простое условие.
Множественные условия — Логический оператор И
Но в жизни наши действия часто зависят от нескольких условий:
Если вечером будет ясно и у нас есть машина, то мы едем на пляж .
Или, если у нас нет машины и погода пасмурная, то мы идём в кино .
Это и есть множественные условия, которые состоят из нескольких частей. В них ключевым словом является И .
Это И есть и в JavaScript . Оно называется логическое И , и обозначается как два амперсанда && . То есть благодаря логическому оператору И мы можем создавать множественные условия в JavaScrip .
Мы едем на пляж
В примере выше мы создали два условия, оба выполняются — значит, в целом множественное условие принимает значение ИСТИНА , поэтому совершается действие, следующее после оператора If .
Если же хотя бы одно из условий принимает значение ЛОЖЬ , как в примере ниже, где у нас нет машины, то выполняется альтернатива — действие, следующее после оператора Else .
Мы идём в пиццерию
Ещё раз напомним о. значениях переменных.
Не лишним будет ещё раз напомнить о том, что значения переменных чувствительны к регистру. Давайте снова обратимся к предыдущему примеру, где у нас есть машина, то есть к варианту, где переменной auto присвоено значение «ДА» и, где, в результате, «Мы едем на пляж»
Попробуем изменить значение переменной auto на «Да» и что мы увидим:
Мы идём в пиццерию
В результате «Мы идём в пиццерию» , так как «Да» и «ДА» — это разные значения переменной auto , поэтому множественное условие не выполняется, то есть в результате мы имеем ЛОЖЬ .
Запомните — переменные чувствительны к регистру — смотрите Правила работы с именами переменных.
Множественные условия — Логический оператор ИЛИ
До этого момента в примерах выше, мы работали с множественными условиями, для связки которых пользовались логическим оператором И .
Но часто мы ставим условия в формате ИЛИ .
Логический оператор ИЛИ обозначается как две вертикальные лини || .
Если придёт Павел или Игорь, то мы пойдём играть в теннис .
Обратите внимание : при использовании логического оператора И для Истинности высказывания обязательным является выполнение обоих условий; при использовании логического оператора ИЛИ достаточно выполнения одного из условий .
Мы пойдём играть в теннис
В результате мы видим, что, несмотря на то, что одно из условий не выполняется, в целом множественное условие всё равно принимает Истинное значение, так как при использовании логического ИЛИ достаточно выполнения одного из условий.
Домашнее задание — Логические операторы И — ИЛИ в Javascript
Пройдя тему множественных условий и логических операторов И — ИЛИ в JavaScript , можно выполнить Домашнее задание, которое будет касаться также темы Массивов.
У Вас есть массив: var friends = [ «Алексей» , «Вячеслав» , «Григорий» , «Настя» ];
Вам нужно написать условие , что, если длина этого массива равна 4 и последним элементом является «Настя», то вывести на экран сообщение «Этот массив мне подходит», а иначе вывести на экран, что массив вам не подходит.
Здесь, как и в Домашнем задании по теме «Условные операторы в Javascript — Конструкция IF-ELSE» нужно знать, как посчитать число элементов в Массиве — смотрите свойство length.
А также необходимо будет вспомнить, как узнать индекс последнего элемента массива. То есть всегда нужно помнить о том, что нумерация элементов в массиве начинается с нуля !
Теперь мы можем легко выполнить текущее домашнее задание по теме Множественные условия в Javascript — Логические операторы И — ИЛИ .
Этот массив мне подходит
И опять же, по аналогии с заданием по предыдущей теме, код для этого Домашнего задания можно записать немного иначе — короче, не создавая переменных count и last_element .
JavaScript Сравнение и Логические операторы
Сравнение и логические операторы используются для проверки true или false.
Операторы сравнения
Операторы сравнения используются в логических инструкциях для определения равенства или разницы между переменными или значениями.
Учитывая, что x = 5, таблица ниже объясняет операторы сравнения:
Оператор | Описание | Сравнение | Возвращает | Пример | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
== | равно | x == 8 | false | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
x == 5 | true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
x == «5» | true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
=== | равное значение и одинаковый тип | x === 5 | true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
x === «5» | false | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
!= | не равны | x != 8 | true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
!== | не равное значение или не равный тип | x !== 5 | false | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
x !== «5» | true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
x !== 8 | true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
> | Больше | x> 8 | false | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
= | больше или равно | x>= 8 | false | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Оператор | Описание | Пример | Исполнить |
---|---|---|---|
&& | and | (x 1) is true | |
|| | or | (x == 5 || y == 5) is false | |
! | not | !(x == y) is true |
Условный (тройной) оператор
JavaScript также содержит условный оператор, который присваивает значение переменной на основе некоторого условия.
Синтаксис
Пример
Сравнение различных типов
Сравнение данных различных типов может привести к неожиданным результатам.
При сравнении строки с числом, JavaScript преобразует строку в число при выполнении сравнения. Пустая строка преобразуется в 0. Нечисловая строка преобразуется в NaN, который всегда является ложным.
Case | Value |
---|---|
2 «John» | false |
2 == «John» | false |
«2» «12» | true |
«2» == «12» | false |
При сравнении двух строк «2» будет больше, чем «12», так как (в алфавитном порядке) 1 меньше 2.
Чтобы обеспечить надлежащий результат, переменные должны быть преобразованы в надлежащий тип перед сравнением:
лабы по информатике, егэ
лабораторные работы и задачи по программированию и информатике, егэ по информатике
JavaScript урок 3. Основные операторы языка JavaScript и конструкции
Условные операторы языка javaScript
В javaScript условие осуществляет оператор if
Рассмотрим синтаксис условного оператора:
var a = prompt(‘Введите наибольшую цифру в 8-й системе счисления’); if (a != 7) < // если истина alert( 'Неверно!' ); >else < // если ложь alert( 'Верно!' ); >
В качестве условия может использоваться логическое выражение или переменная.
Часть конструкции после служебного слова else — необязательна.
В условии используются следующие операции отношений:
Меньше | |
> | Больше |
Меньше либо равно | |
>= | В javascript больше или равно |
== | Равно (сравнение) |
!= | в javascript не равно |
=== | Сравнение с учетом типа (идентичность) |
- если значения имеют разные типы, то они не идентичны;
- если значения являются числами, имеют одинаковые значения и не являются значениями NaN — они идентичны.
Для оператора равенства стоит использовать символ « == »
Для оператора идентичности стоит использовать « === »
Рассмотрим простой пример с использованием оператора языка javascript if :
- Создайте веб-страницу с html-скелетом и тегом script.
- В коде для javascript инициализируйте переменную a методом prompt() — модального окна для ввода:
var a = prompt(«Введите число»);
if (a > 1) alert(«а больше 1») else alert(«а не больше 1»);
- Каков синтаксис условного оператора if?
- В каких случаях можно опускать фигурные скобки <> в условном операторе?
var a = prompt(«Введите число 11», «0»); if (a = 11) document.write(«Введенное значение верно.»); >
Теперь рассмотрим используемые в javascript логические операторы для построения сложных (например, двойных) условий:
символ | смысл | пример |
---|---|---|
! | в javascript отрицание НЕ | if (!x) |
&& | в javascript И | if (x>1 && x |
|| | в javascript ИЛИ | if (x>1 || y>1) |
В большинстве языков программирования также как и в javascript используется так называемое «правило лжи». Рассмотрим пример:
var a=1; if (a) alert(a);
Как в данном примере поступит интерпретатор? как будет проверять условие, состоящее просто из одной переменной? — По правилу лжи:
Пример использования «правила лжи» со строковой переменной:
var s=»»; if (s) alert(«строка не пуста»); else alert(«строка пуста»);
- Создайте веб-страницу с html-скелетом и тегом script.
- В коде для javascript инициализируйте переменную name методом prompt() — модального окна для ввода:
var name = prompt(«Введите число»);
if (!name || name==»null») document.write(«Привет, незнакомец!»)
else document.write («Привет, «, name,»!»);
- 9583, 1747 – выдавать сообщение «доступны модули баз А, В и С»;
- 3331, 7922 — выдавать сообщение «доступны модули баз В и С»;
- 9455, 8997 – выдавать сообщение «доступен модуль базы С».
Выводить доступные модули на запрос.
- Какие логические операторы существуют для сложных условий (И, ИЛИ, НЕ)?
- Что означает «правило лжи», и в каких случаях оно используется?
Тернарный оператор javaScript
(логич. выражение) ? выражение 1 : выражение 2
Рассмотрим синтаксис тернарного оператора на примере:
str1 = (y%2) ? «нечетное» : «четное»
- Создайте веб-страницу с html-скелетом и тегом script.
- Добавьте следующий код:
var a = 10; var b = (a>1) ? 100 : 200; alert(b);
var a = 1, b = 2, max = 0; . document.write(max);
- Каков синтаксис тернарного оператора?
- Сколько аргументов у тернарного оператора?
Оператор переключения в javaScript — switch
Оператор switch javascript служит для проверки переменной на множество значений:
Блок, начинающийся со служебного слова default можно опустить. Операторы блока будут выполнены в случае, если ни одно из перечисленных значений во всех case не подходит.
Сравним с оператором IF:
. case 0: case 1: alert(«Ноль или один»); break; .
При a = 0 и a = 1 выполняется один и тот же оператор: alert(«Ноль или один»);
- Создайте веб-страницу с html-скелетом и тегом script.
- Инициализируйте переменную color значением, введенным пользователем в модальное окно:
var color = prompt(«Какой цвет?»);
// . case «синий»: case «голубой»: alert(«blue»); break; // .
// . default: alert(«y нас нет сведений по данному цвету») > // конец switch
var value = «2»; switch (value)
- В зависимости от введенного числа, меняется окончание у слова «ворона».
- Для проверки использовать оператор Switch javascript.
- Сохраните данную страницу в папке результатов (она пригодится для дальнейших работ).
- В каком случае целесообразно в качестве условного оператора использовать конструкцию switch?
- Для чего служит блок default в операторе switch?
- Обязательно ли использование оператора break в конструкции switch?
- Как осуществляется группировка для нескольких вариантов значений в операторе switch?
Циклические операторы языка javaScript — For
for(начальное значение счетчика; условие; приращение счетчика) < //..блок операторов.. >
-
В качестве начального значения счетчика итераций используется выражение присваивания: например, i=0 — счетчик цикла начинается с нуля:
for(var i = 0; условие; приращение счетчика) < //..блок операторов.. >
- Для вывода последовательности чисел будем использовать счетчик цикла for , который должен менять свое значение от до 9 согласно последовательности.
- Значит, для начального значения счетчика цикла установите значение, равное ; в качестве условия цикла установите заключительное значение — i , т.е. последним значением будет i=9; шаг счетчика должен равняться 1 ( i++ ), так как разница между членами последовательности — единица:
for (var i=0; i i ). Поскольку выводить следует каждое значение с новой строки, используйте после каждого вывода тег
, который осуществляет переход на следующую строку:
for (var i=0; i i++ , соответственно, на экране будут появляться 0 1 2 3 . 9, причем каждая цифра — с новой строки (тег
).
- В качестве последовательности чисел используйте счетчик цикла for.
- Для переменной-сумматора следует использовать идентификатор переменной sum.
Операторы выхода из цикла break и continue в javaScript. Оператор Exit
Рассмотрим работу операторов break и continue на примере:
- В третьей строке примера стоит условие, из-за которого цифра 4 не будет выводиться на экран: оператор continue перейдет к следующей итерации цикла, не завершив текущую.
- В строке №5 осуществляется выход из цикла, но при этом цифра 8 будет выведена на экран, так как оператор вывода стоит до условия (в 4-й строке). Встретив break, интерпретатор завершит работу цикла.
- Т.о. на экране будет: 0 1 2 3 5 6 7 8 — каждая цифра с новой строки.
- Инициализируйте переменную number значением, введенным пользователем в модальное окно:
var number = prompt(«Введите число»);
number=parseInt(number); // возвратит NaN — не число
x = isNaN(number); // возвратит true, если значение не числовое
alert(«Введите второе число»);// при вводе не числа оператор не выполнится
- Перечислите три параметра цикла for и поясните их назначение.
- Какие операторы предназначены для выхода из цикла и для его прерывания? Приведите примеры их использования.
- Для чего предназначен оператор exit?
Интересная работа с циклом for возможна при использовании одновременно двух счетчиков в цикле.
Рассмотрим пример:
- В цикле for организуйте два счетчика: счетчик i для вывода последовательности 0 1 2, счетчик j для вывода последовательности 2 3 4:
for(i=0, j=2; i for теперь имеет по два значения, которые перечисляются через запятую (например, первый параметр с двумя значениями: i=0, j=2 ). Сами параметры перечисляются через точку с запятой(;).
for(i=0, j=2; i цифра 1 ) или маркированный ( цифра 2 )), а затем количество пунктов списка.
Вспомним теги:
теги нумерованного списка:
теги маркированного списка:
- Например, при вводе сначала единицы, а затем числа 5, браузер отобразит:
Рекомендации:
В примере для вывода пунктов списка необходимо использовать цикл for . Также понадобятся функции преобразования типов.
- Инициализируйте переменную listType значением, введенным пользователем в модальное окно:
var listType=prompt(«Введите ‘1’ — если маркированный список, ‘2’ — если нумерованный список»);
if (listType==’1′) document.write(»
-
«) else if (listType==’2′) document.write(»
-
«) else
var kolvo=prompt(«Введите количество пунктов»);
for (var i=1; i Для 2 — кнопка: Для 3 — radio:
- Для рисования 9 строк необходимо организовать внешний цикл for со счетчиком i .
- Для рисования 9 ячеек в каждой строке необходимо организовать внутренний (вложенный) цикл for со счетчиком j .
- Для отрисовки тегов ячеек и строк следует использовать метод document.write .
- В ячейки таблицы вывести таблицу умножения, используя счетчики цикла ( i и j ).
- Первый ряд и первую колонку вывести с красным фоном (атрибут ячейки таблицы bgcolor ):
- Объясните, что значит понятие «динамическое построение страницы»?
- Какая конструкция языка чаще всего используется при динамическом построении страницы?
Циклические операторы языка javaScript — While
- Листинг скрипта:
var a = 1; while (a a*=2 → использована операция составного присваивания: произведение, совмещенное с присваиванием, т.е. то же самое, что a = a*2
Как работают операторы break и continue в цикле while ?
var a = 1; while (a while . Запрашивать значения переменных и выводить результат с помощью alert() .
var x = . ; var y = . ; counter = 1; chislo=x; while (. ) < chislo=x*. ; counter=. ; >alert(chislo);
Логические операторы в JavaScript.
Логические операторы в JavaScript.
Здравствуйте! В этом уроке мы продолжим тему операторов в JavaScript, начатую в прошлой статье и поговорим о логических операторах в JavaScript. Эти операторы применяются в логических операциях, то есть таких где надо делать выбор в зависимости от какого-то условия поэтому для начала рассмотрим их.
Логические операции JavaScript
Логические операции в основном предназначены для составления сложных условий в операциях сравнения. В языке JavaScript имеются такие логические операции:
&&- оператор логическое И вернет true, только если 2 операнда сравнения тоже возвращают true, в других случаях вернет false:
|| оператор логическое ИЛИ возвращает true, если хотя бы один операнд сравнения возвращают true, в другом случае вернет false:
! оператор логическое НЕ Возвращает true, если операнд сравнения возвращает ложь то есть все наоборот:
Операции со строками в JavaScript.
Строки как и числа также могут использовать оператор + для склеивания строк или конкатенации. Например:
Если надо переменную вставить в строке, которая выводится на экран то это тоже можно сделать с помощью оператора «+».
По новому стандарту JS2015 для того чтобы в строку вставить переменную необязательно использовать оператор «+», а сделать так:
То есть строка заключается в обратные одинарные кавычки `, находятся там где клавиша ё в английской раскладке клавиатуры, а переменная помещается в конструкцию $<> при этом не надо разрывать строку и ставить знак «+».
В случае, когда вы пытаетесь сложить строку и число это приведет к тому что число будет преобразовано в строку и последняя будет просто склеена:
И давайте для закрепления материала напишем небольшую программу для демонстрации работы логических операторов:
Здесь в нашем сценарии создаются 3 переменные: summa, procent и itog. Переменная itog будет вычисляться по остальным 2 переменным с помощью соответственно операций умножения и деления. И в самом конце ее значение будет суммироваться со значением переменной summa.
ЗАДАНИЯ:
Что выведет alert (ИЛИ)?
Что будет в результате выполнения этого кода?
Что выведет alert (ИЛИ)?
Что будет в результате выполнения этого кода?
Что выведет alert (И)?
Что будет в результате выполнения этого кода?
Что выведет alert (И)?
Что будет в результате выполнения этого кода?
Что выведет этот код?
Что будет в результате выполнения этого кода?
В заключении смотрите видео о логических операторах в JavaScript.
Выразительный JavaScript: Величины, типы и операторы
Содержание
Под поверхностью машины движется программа. Без усилий, она расширяется и сжимается. Находясь в великой гармонии, электроны рассеиваются и собираются. Формы на мониторе – лишь рябь на воде. Суть остаётся скрытой внутри…
Мастер Юан-Ма, Книга программирования
В компьютерном мире есть только данные. Можно читать данные, изменять данные, создавать новые – но кроме данных ничего нет. Все данные хранятся как длинные последовательности бит, этим они сходны между собой.
Биты – это сущности с двумя состояниями, обычно описываемые как нули и единицы. В компьютере они живут в виде высоких и низких электрических зарядов, сильного или слабого сигнала, или блестящего и матового участка на поверхности CD. Каждая часть информации может быть представлена в виде последовательности нулей и единиц, то есть бит.
К примеру, номер 13. Вместо десятичной системы, состоящей из 10 цифр, у вас есть двоичная система с двумя цифрами. Значение каждой позиции числа удваивается при движении справа налево. Биты, составляющие число 13, вместе с их весами:
Получается двоичное число 00001101, или 8 + 4 + 1, что равно 13.
Величины.
Представьте океан бит. Типичный современный компьютер хранит более 30 миллиардов бит в оперативной памяти. Постоянная память (жёсткий диск) обычно ещё на пару порядков объёмнее.
Чтобы работать с ними и не заблудиться, вы можете делить их на куски, представляющие единицы информации. В JavaScript эти единицы называются величинами. Все их значения состоят из бит, но играют разные роли. У каждой величины есть тип, определяющий его роль. Всего есть шесть основных типов: числа, строки, булевые величины, объекты, функции и неопределённые величины.
Для создания величины вам нужно указать её имя. Это удобно. Вам не надо собирать стройматериалы или платить за них. Нужно просто позвать – и оп-па, готово. Они не создаются из воздуха – каждая величина где-то хранится, и если вы хотите использовать огромное их количество, у вас могут закончиться биты. К счастью, это только если они все нужны вам одновременно. Когда величина вам станет не нужна, она растворяется, и использованные ею биты поступают в переработку как стройматериал для новых величин.
В этой главе мы знакомимся с атомами программ JavaScript – простые типы величин и операторы, которые к ним применимы.
Числа
Величины числовых типов, это – сюрприз – числа. В программе JavaScript они записываются как
Используйте эту запись в программе, и она вызовет к жизни в компьютерной памяти цепочку бит, представляющую число 13.
JavaScript использует фиксированное число бит (64) для хранения численных величин. Число величин, которые можно выразить при помощи 64 бит, ограничено – то есть и сами числа тоже ограничены. Для N десятичных цифр количество чисел, которые ими можно записать, равно 10 в степени N. Аналогично, 64 битами можно выразить 2 в 64 степени чисел. Это довольно много.
Раньше у компьютеров памяти было меньше, и тогда для хранения чисел использовали группы из 8 или 16 бит. Было легко случайно превысить максимальное число для таких небольших чисел – то есть, использовать число, которое не помещалось в этот набор бит. Сегодня у компьютеров памяти много, можно использовать куски по 64 бит, и значит вам надо беспокоиться об этом только, если вы работаете с астрономическими числами.
Правда, не все числа меньше 2^64 помещаются в число JavaScript. В этих битах также хранятся отрицательные числа – поэтому, один бит хранит знак числа. Кроме того, нам нужно иметь возможность хранить дроби. Для этого часть бит используется для хранения позиции десятичной точки. Реальный максимум для чисел – примерно 10^15, что в общем всё равно довольно много.
Дроби записываются с помощью точки.
Очень большие или маленькие числа записываются научной записью с буквой “e” (exponent), за которой следует степень:
Это 2.998 × 10^8 = 299800000.
Вычисления с целыми числами (которые также называются integer), меньшими, чем 10^15, гарантировано будут точными. Вычисления с дробями обычно нет. Так же, как число π (пи) нельзя представить точно при помощи конечного числа цифр, так и многие дроби нельзя представить в случае, когда у нас есть только 64 бита. Плохо, но это мешает в очень специфических случаях. Важно помнить об этом и относиться к дробям как к приближённым значениям.
Арифметика
Главное, что можно делать с числами – это арифметические вычисления. Сложения и умножения используют два числа и выдают третье. Как это записывается в JavaScript:
Символы + и * называются операторами. Первый – сложение, второй – умножение. Помещаем оператор между двумя величинами и получаем значение выражения.
А в примере получается «сложить 4 и 100 и затем умножить результат на 11» или умножение выполняется сначала? Как вы могли догадаться, умножение выполняется первым. Но как и в математике, это можно изменить при помощи скобок:
Для вычитания используется оператор -, а для деления — /
Когда операторы используются без скобок, порядок их выполнения определяется их приоритетом. У операторов * и / приоритет одинаковый, выше, чем у + и -, которые между собой равны по приоритету. При вычислении операторов с равным приоритетом они вычисляются слева направо:
вычисляется как (1 — 2) + 1
Пока беспокоиться о приоритетах не надо. Если сомневаетесь – используйте скобки.
Есть ещё один оператор, который вы не сразу узнаете. Символ % используется для получения остатка. X % Y – остаток от деления X на Y. 314 % 100 даёт 14, и 144 % 12 даёт 0. Приоритет у оператора такой же, как у умножения и деления. Его ещё часто называют «деление по модулю», хотя более правильно «с остатком».
Специальные числа
В JavaScript есть три специальных значения, которые считаются числами, но ведут себя не как обычные числа.
Это Infinity и -Infinity , которые представляют положительную и отрицательную бесконечности. Infinity — 1 = Infinity, и так далее. Не надейтесь сильно на вычисления с бесконечностями, они не слишком строгие.
Третье число: NaN . Обозначает «not a number» (не число), хотя это величина числового типа. Вы можете получить её после вычислений типа 0 / 0, Infinity – Infinity, или других операций, которые не ведут к точным осмысленным результатам.
Строки
Следующий базовый тип данных – строки. Они используются для хранения текста. Записываются они в кавычках:
Можно использовать как двойные, так и одинарные кавычки – главное использовать их вместе. Почти всё можно заключить в кавычки и сделать из этого строку. Но некоторые символы вызывают проблемы. Например, сложно заключить кавычки в кавычки. Перевод строки тоже нельзя просто так заключить в них – строка должна идти одной строкой.
Для заключения специальных символов используется обратный слеш \. Он обозначает, что символ, идущий за ним, имеет специальное значение – это называется «экранирование символов» (escape character). \” можно заключать в двойные кавычки. \n обозначает перевод строки, \t – табуляцию.
Строка “Между первой и второй\nсимвол будет небольшой” на самом деле будет выглядеть так:
Если вам нужно включить в строку обратный слеш, его тоже нужно экранировать: \\. Инструкцию “Символ новой строки — это “\n”” нужно будет написать так:
Строки нельзя делить, умножать и складывать. Однако с ними можно использовать оператор +, который будет соединять их друг с другом. Следующее выражение выдаст слово «соединение»:
Есть много способов манипуляций со строками, которые мы обсудим в главе 4.
Унарные операторы
Не все операторы записываются символами – некоторые словами. Один из таких операторов – typeof , который выдаёт название типа величины, к которой он применяется.
Будем использовать вызов console.log в примерах, когда захотим увидеть результат на экране. Как именно будет выдан результат – зависит от окружения, в котором вы запускаете скрипт.
Предыдущие операторы работали с двумя величинами, однако typeof использует только одну. Операторы, работающие с двумя величинами, называются бинарными, а с одной – унарными. Минус (вычитание) можно использовать и как унарный, и как бинарный.
Булевские величины
Часто вам нужна величина, которая просто показывает одну из двух возможностей – типа «да» и «нет», или «вкл» и «выкл». Для этого в JavaScript есть тип Boolean, у которого есть всего два значения – true и false (правда и ложь).
Сравнения
Один из способов получить булевские величины:
Знаки традиционно обозначают «меньше» и «больше». Это бинарные операторы. В результате их использования мы получаем булевскую величину, которая показывает, является ли неравенство верным.
Строки можно сравнивать так же:
Строки сравниваются по алфавиту: буквы в верхнем регистре всегда «меньше» букв в нижнем регистре. Сравнение основано на стандарте Unicode. Этот стандарт присваивает номер практически любому символу из любого языка. Во время сравнения строк JavaScript проходит по их символам слева направо, сравнивая номерные коды этих символов.
Другие сходные операторы – это >= (больше или равно), NaN («не число»).
NaN – это результат любого бессмысленного вычисления, поэтому он не равен результату какого-то другого бессмысленного вычисления.
Есть операции, которые можно совершать и с самими булевскими значениями. JavaScript поддерживает три логических оператора: и, или, нет.
Оператор && — логическое «и». Он бинарный, и его результат – правда, только если обе величины, к которым он применяется, тоже правда.
Оператор || — логическое «или». Выдаёт true, если одна из величин true.
«Нет» записывается при помощи восклицательного знака “!”. Это унарный оператор, который обращает данную величину на обратную. !true получается false, !false получается true.
При использовании логических и арифметических операторов не всегда ясно, когда нужны скобки. На практике вы можете справиться с этим, зная, что у || приоритет ниже всех, потом идёт &&, потом операторы сравнения, потом все остальные. Такой порядок был выбран для того, чтобы в выражениях типа следующего можно было использовать скобок по минимуму:
Последний логический оператор не унарный и не бинарный – он тройной. Записывается при помощи вопросительного знака и двоеточия:
Это условный оператор, у которого величина слева от вопросительного знака выбирает одну из двух величин, разделённых двоеточием. Когда величина слева true, выбираем первое значение. Когда false, второе.
Неопределённые значения
Существуют два специальных значения, null и undefined, которые используются для обозначения отсутствия осмысленного значения. Сами по себе они никакой информации не несут.
Много операторов, которые не выдают значения, возвращают undefined просто для того, чтобы что-то вернуть. Разница между undefined и null появилась в языке случайно, и обычно не имеет значения.
Автоматическое преобразование типов
Ранее я упоминал, что JavaScript позволяет выполнять любые, подчас очень странные программы. К примеру:
Когда оператор применяется «не к тому» типу величин, JavaScript втихую преобразовывает величину к нужному типу, используя набор правил, которые не всегда соответствуют вашим ожиданиям. Это называется приведением типов (coercion). В первом выражении null превращается в 0, а “5” становится 5 (из строки – в число). Однако в третьем выражении + выполняет конкатенацию (объединение) строк, из-за чего 1 преобразовывается в “1’ (из числа в строку).
Когда что-то неочевидное превращается в номер (к примеру, “пять” или undefined), возвращается значение NaN. Последующие арифметические операции с NaN опять получают NaN. Если вы получили такое значение, поищите, где произошло случайное преобразование типов.
При сравнении величин одного типа через ==, легко предсказать, что вы должны получить true, если они одинаковые (исключая случай с NaN). Но когда типы различаются, JavaScript использует сложный и запутанный набор правил для сравнений. Обычно он пытается преобразовать тип одной из величин в тип другой. Когда с одной из сторон оператора возникает null или undefined, он выдаёт true, если обе стороны имеют значение null или undefined.
Последний пример демонстрирует полезный приём. Когда вам надо проверить, имеет ли величина реальное значение вместо null или undefined, вы просто сравниваете её с null при помощи == или !=.
Но что, если вам надо сравнить нечто с точной величиной? Правила преобразования типов в булевские значения говорят, что 0, NaN и пустая строка “” считаются false, а все остальные – true. Поэтому 0 == false и “” == false. В случаях, когда вам не нужно автоматическое преобразование типов, можно использовать ещё два оператора: === и !==. Первый проверяет, что две величины абсолютно идентичны, второй – наоборот. И тогда сравнение “” === false возвращает false.
Рекомендую использовать трёхсимвольные операторы сравнения для защиты от неожиданных преобразований типов, которые могут привести к непредсказуемым последствиям. Если вы уверены, что типы сравниваемых величин будут совпадать, можно спокойно использовать короткие операторы.
Короткое вычисление логических операторов
Логические операторы && и || работают с величинами разных типов очень странным образом. Они преобразовывают величину с левой стороны оператора в булевскую, чтобы понять, что делать дальше, но в зависимости от оператора и от результата этого преобразования, возвращают либо оригинальное значение с левой или правой части.
К примеру, || вернёт значение с левой части, когда его можно преобразовать в true – а иначе вернёт правую часть.
Такая работа оператора || позволяет использовать его как откат к значению по умолчанию. Если вы дадите ему выражение, которое может вернуть пустое значение слева, то значение справа будет служить заменой на этот случай.
Оператор && работает сходным образом, но наоборот. Если величина слева преобразовывается в false, он возвращает эту величину, а иначе – величину справа.
Ещё одно важное их свойство – выражение в правой части вычисляется только при необходимости. В случае true || X неважно, чему равно X. Даже если это какое-то ужасное выражение. Результат всегда true и X не вычисляется. Так же работает false && X – X просто игнорируется. Это называется коротким вычислением.
Оператор условия работает так же. Первое выражение всегда вычисляется, а из второго и третьего значения – только то, которое оказывается выбранным в результате.
Мы рассмотрели четыре типа величин JavaScript: числа, строки, булевские и неопределённые.
Эти величины получаются, когда мы пишем их имена (true, null) или значения (13, “ёпрст”). Их можно комбинировать и изменять при помощи операторов. Для арифметики есть бинарные операторы (+, -, *, /, and %), объединение строк (+), сравнение (==, !=, ===, !==, , =), и логические операторы (&&, ||), так же, как и несколько унарных операторов (- для отрицательного значения,! для логического отрицания, и typeof для определения типа величины).
Эти знания позволяют использовать JavaScript в качестве калькулятора, но и только. В следующей главе мы будем связывать эти простые значения вместе, чтобы составлять простые программы.
JavaScript Урок 8 Сравнение и Логические Операторы
Сравнение и Логические операторы используются, чтобы проверять условия — истинны они, или ложны.
Операторы Сравнения
Операторы сравнения используются в логических предложениях для определения равенства или неравенства между переменными или значениями.
Пусть x=5, таблица ниже объясняет операторы сравнения:
Оператор | Описание | Пример | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
== | равно | x==8 это ложь x==5 это истина |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
=== | точно равно (значение и тип совпадают) | x===5 это истина x===»5″ это ложь |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
!= | не равно | x!=8 это истина | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
> | больше чем | x>8 это ложь | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
= | больше или равно | x>=8 это ложь | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Как Это Можно ИспользоватьОператоры сравнения могут использоваться в условных предложениях, чтобы сравнивать значения и предпринимать определенные действия в зависимости от результата:
|