<MyRusakov.ru />

React JS, Redux, ES2015 с Нуля до Гуру

React JS, Redux, ES2015 с Нуля до Гуру

Данный курс - это обширный курс по JavaScript и фреймворку React, который позволит Вам с нуля создавать мощные современные, динамические JavaScript-приложения.

Вы узнаете о тонкостях работы с "профессиональным" JavaScript, а так же узнаете о нововведениях в его новый стандарт ES2015, Вы узнаете, как организовать профессиональное окружение для FrontEnd, изучите профессиональный фреймворк - ReactJS.

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

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Условный оператор в JavaScript

Условный оператор в JavaScript

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

Общий вид условного оператора в JavaScript такой:

if (условие) {
  //Блок операторов
}
else {
  //Блок операторов
}

Сначала идёт ключевое слово if, которое сообщает браузеру, что дальше идёт условный оператор. Внутри скобок указывается условие, которое, соответственно, возвращает true или false. Если выражение в скобках было true (истинно), то выполняется первый блок операторов, если условие false (ложно), то выполняется блок операторов в else. Также блок else не является обязательным, и дальше я приведу такой пример.

Давайте теперь потренируемся уже на практике. Решим такую задачу: пользователь вводит число, а мы выводим сообщание - больше оно или меньше 5.

var x = prompt("Введите число");
if (x < 5) alert ("Введённое число меньше пяти");
else alert("Введённое число больше пяти");

Разберём этот пример. Первой строкой мы вызываем функцию prompt, которая выводит окно с просьбой ввести число. Дальше пользователь вводит число, которое записывается в переменную x. А дальше идёт условие, которое я перевожу так: Если x меньше 5, то вывести сообщение: "Введённое число меньше пяти", иначе вывести сообщение "Введённое число больше пяти". Выражение x < 5 возвращает либо true ( < 5) или false (x >= 5). Также обратите внимание, что мы не используем фигурные скобки. Почему? Потому, что мы используем всего один оператор (функцию alert()). В принципе, мы можем их поставить, и ничего не поменяется, однако, здесь они будут лишними.

Однако, наша задача содержит существенную ошибку. Если пользователь введёт "5", то у нас выводится сообщение "Введённое число больше пяти", однако, это не совсем правильно. Поэтому давайте преобразуем условие таким образом:

if (x < 5) alert ("Введённое число меньше пяти");
else
  if (x == 5) alert ("Вы ввели пять");
  else alert("Введённое число больше пяти");

Как видите, блок else в первом условии преобразился. В блоке else проверяется на равенство x и 5-ти. И если это так, то выводится соответствующее сообщение, в противном случае, выводится, что число больше пяти. То есть условие внутри условия - это совершенно нормально. Также обратите внимание, что я по-прежнему не поставил фигурные скобки, так как if-else это один оператор. А когда только один оператор наличие скобок необязательно.

Давайте разберём ещё один пример. Создадим переменную, которая будет true, если введённое число положительное, и false, если число отрицательное.

var x = prompt("Введите число");
var positive = true;
if (x < 0) positive = false;
alert (positive);

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

var x = prompt("Введите число");
var positive = x < 0;

Другими словами, мы переменной positive сразу присваиваем результат сравнения x и нуля.

Теперь поговорим о так называемых сложных условиях. В примерах выше мы рассматривали лишь простые условия, однако, существуют также и другие условия, которые состоят из нескольких условий. И здесь используются две операции: && - логическое И и || - логическое ИЛИ. Давайте напишем такое условие:

if ((x <= 5) && (x >= 0)) {//блок операторов}

Данное условие (сложное условие) даст true, тогда и только тогда, когда x <= 5 И x >= 0. В противном случае, вернётся false.

Рассмотрим сложное условие с логическим ИЛИ.

if ((x <= 5) || (x == 6)) {//блок операторов}

Перевести это можно так: если x <= 5 ИЛИ x == 6, то вернуть true, иначе false.

Последнее, что хочется сказать, что бывают условия, которые состоят из нескольких логических И и ИЛИ, и, порой, приходится очень серьёзно напрячь голову, чтобы разобраться в таком условии.

Вот и всё, что хотелось сказать по условным операторам в JavaScript. А дальше нужна лишь практика. Увы, но без практики, Вы никогда не научитесь использовать этот оператор, без знания которого двигаться дальше просто бессмысленно. Так что придумайте какую-нибудь несложную задачу (на подобии той, что мы решили выше) и решите её.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

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

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (37):

brussens brussens 29.10.2011 00:55:40

Михаил, я так понимаю, что JavaScript впринципе очень близок к php, просто уж слишком схож синтаксис?

Ответить

Admin Admin 29.10.2011 01:12:58

Все языки (по крайней мере, те 11, которые я знаю) очень схожи. Даже Assembler, который крайне сильно отличается от других языков, имеет много общих черт.

Ответить

fred fred 01.08.2012 01:02:45

На мой взгляд, пример с положительным и отрицательным числом не совсем корректен. Допустим, вместо alert, мы воспользуемся методом document.write и напишем следующий код. var x = prompt("Введите число"); var positive = true; if (x < 0) { positive = false; document.write ("Вы ввели отрицательное число"); } else { document.write ("Вы ввели положительное число"); }; Теперь, если в плавающее окно введем 0, то получим результат: «Вы ввели положительное число». Что не соответствует действительности. А вот как сделать правильно не соображу. Ведь для определения у нас есть только два варианта. И для нуля здесь места нет. Не подскажете ответ? И еще такой вопрос. Точку с запятой, согласно правилам языка тоже можно не всегда ставить. Однако, опытные программисты в один голос рекомендуют ставить этот знак всегда. Это даже негласно считается почерком профессионала. На фигурные скобки это правило не распространяется?

Ответить

Admin Admin 01.08.2012 13:50:03

С одним условием проверку на ноль не сделать, нужно ещё одно. А скобки лучше ставить, хотя бы для того, чтобы самому потом не путаться.

Ответить

wwwu1 wwwu1 05.11.2012 18:06:33

В JavaScript, Оператор IF-ELSE. Не могу выполнить задание №2. Урок вроде понятен, а задание выполнить не могу. Подскажите пожалуйста.......Именно ввод типа операции не знаю как.

Ответить

Admin Admin 05.11.2012 18:29:32

В форме вводится, например, "+". Далее в IF Вы проверяете, если введённая строка равна "+", значит, это команда сложения. И аналогично с другими операциями.

Ответить

wwwu1 wwwu1 05.11.2012 18:59:05

var x = prompt ("Введите первое число"); var y = prompt ("Введите второе число"); var z = prompt ("Введите вид операции"); if (" * ") alert (x * y); if (" / ") alert (x / y); Блин, туплю не знаю как правильно

Ответить

Admin Admin 05.11.2012 19:00:42

if (z == "*") alert (x * y);

Ответить

wwwu1 wwwu1 05.11.2012 19:04:03

Спасибо )))))

Ответить

dedok41 dedok41 25.12.2013 10:53:56

Небольшое замечание, fred. Все-таки, в математике ноль принято считать положительным числом. Так что в этом примере все верно.

Ответить

Тимур Тимур 19.11.2012 16:44:43

А что делает команда или функция positive? И можно написать так?: var x = prompt("Введите число"); if (x > 0) alert ("True"); else alert("False");

Ответить

Тимур Тимур 19.11.2012 17:03:06

Все не надо. positive это же переменная)

Ответить

Тимур Тимур 19.11.2012 17:36:30

У меня теперь другой вопрос: <script> var x = prompt("Введите число или слово"); if (typeof(a)== "string") alert ("Вы ввели слово"); else alert ('Вы ввели число'); </script> По идеи, если я ввожу строковые данные, то должно показывать что я ввел слово, а если я ввел какой-то другой тип данных, то должно высвечиваться что я ввел число. Но почему то у меня все время показывает что я ввел число.

Ответить

Admin Admin 19.11.2012 17:39:32

Посмотрите, что получается: alert(typeof(a));

Ответить

Admin Admin 19.11.2012 17:03:47

Впервые слышу о такой функции в JavaScript. Как Вы написали, написать можно.

Ответить

AiLing AiLing 03.04.2013 08:34:56

Очень похоже на Turbo Pascal

Ответить

Алексей Сорокин Алексей Сорокин 27.06.2013 13:54:01

Михаил, у меня такой вопрос: Когда я прописал данную функцию, результат выводится в отдельном окне на странице, окно называется "Оповещение javascript" так и должно быть? Можно ли здесь сделать так, чтобы числа располагались ,как и в предыдущих уроках, а не в отдельном окне?

Ответить

Admin Admin 27.06.2013 18:33:30

Функция alert() и создаёт это окно. Чтобы вывести на страницу надо использовать document.write()

Ответить

Алексей Сорокин Алексей Сорокин 27.06.2013 20:56:37

Спасибо)

Ответить

Alex_Cortez Alex_Cortez 11.09.2013 16:09:01

Михаил, у меня вопрос. Вот я написал код: var a = prompt("Введите первое число:"); var b = prompt("Введите второе число:"); var c = prompt("Введите тип операции:"); if (c == 1) { add(); } function add() { var add = a + b; alert(a + " + " + b + " = " + add); } Но складываются не числа, а строки, помогите решить данную проблему.

Ответить

Admin Admin 11.09.2013 18:14:27

Так откуда же интерпретатору знать, что это за величины. Вы должны непосредственно указать что это числа. Преобразуйте их, например, через Number(a)

Ответить

Alex_Cortez Alex_Cortez 11.09.2013 20:47:41

Спасибо.

Ответить

wick wick 17.09.2013 17:30:10

Михаил, здравствуйте. вот мой код: function add(x,y) { } function sub(x,y) { } function mult(x,y) { } function division(x,y) { } var x = prompt ("Введите число 1"); var y = prompt ("Введите число 2"); var operation = prompt ("Введите операцию"); if (operation == "*") alert (x * y); if (operation == "-") alert (x - y); if (operation == "/") alert (x / y); if (operation == "+") alert (x + y); И собственно вопрос: все операции выполняются нормально, за исключением сложения, там почему то складываются строки?!

Ответить

Admin Admin 17.09.2013 19:45:30

Потому что по умолчанию под "+" подразумевается конкатенация строк, а не сложение. Нужно однозначно указать тип переменной, например, через Number(x)

Ответить

wick wick 17.09.2013 20:59:24

спасибо

Ответить

Tao Tao 22.09.2013 19:44:20

Михаил, а если нужно условие не равенства, какой символ использовать? <> пробовал не работает.

Ответить

Admin Admin 23.09.2013 20:11:07

Вот такой !=

Ответить

dedok41 dedok41 25.12.2013 11:10:23

Михаил, а вот такой вопрос: можно ли регулировать на экране монитора размер и положение окна, которое открывает функция alert(). Такое огромное окно закрывает весь экран, в то время как для вводимой информации, как правило необходимо небольшое поле.

Ответить

dedok41 dedok41 25.12.2013 11:24:48

Михаил, вдогонку в дополнение к вопросу Дмитрия от 29.10.2011. JavaScript и PHP действительно очень близки. А как в скорости выполнения операций? Поскольку первый язык браузерный, а второй серверный, не означает ли это, что блоки Javascript выполняются быстрее, чем аналогичные блоки PHP. Видимо, здесь все зависит от объема данных пересылаемых между браузером и сервером.

Ответить

tikkiwiki tikkiwiki 25.12.2013 13:40:14

Тут не очень корректно сравнивать, ведь один язык выполняется на сервере в момент формирования страницы, а другой на клиент в момент получения. Они выполняют разные задачи, на разных машинах. У них даже скорость вычисляется по разному, у одного скорость выполнения на сервере, а другого на клиенте - как такое сравнивать?

Ответить

dedok41 dedok41 26.12.2013 12:44:08

Спасибо за ответ, Александр, попутно с наступающим! С месяц назад столкнулся с громоздкими многовариантными вычислениями. Несколько сот вариантов просчитал вручную. В моей задаче увеличение размерности лишь на единицу утраивает число вариантов. И когда потребовалось обработать тысячу вариантов, пришлось написать программу. Выбрал PHP и локальный сервер Open server. Естественно и тысяча, а потом и сотни тысяч вариантов обсчитывались в считанные секунды. Но, как говорится, аппетит приходит во время еды. Когда число вариантов перевалило за миллионы и десятки миллионов, время расчетов стало ощутимым. К примеру, 10^8 или сто миллионов обсчитываются час-полтора. Впереди маячит обработка 10^9 вариантов, поэтому просматривал вариант с использованием JS. И именно не в связи с формированием страницы, а для выполнения непосредственных вычислений, и для этого в JS практически все есть. В случае локального сервера особой разницы нет, все выполняется на одном ПК. Пожалуй, все определяется не выбранным языком, а мощностью компьютера. Очевидно, внешние сервера более мощные, и логичнее использовать PHP в случае размещения сайта в сети.

Ответить

PoZaMus PoZaMus 20.03.2014 20:52:35

А почему не работает вот такой код вроде все правильно var a = prompt("Первое число"); var a = Number(a); var b = prompt("Второе число"); var b = Number(b); var n = prompt("Выберите оперяцию"); var n = Number(n); if (n == "*") alert (a * b); if (n == "-") alert (a - b); if (n == "/") alert (a / b); if (n == "+") alert (a + b);

Ответить

Eric Eric 19.09.2014 16:35:53

Когда используете функцию "Number" и присваиваете переменной значение не пишите var. У вас же уже создана эта переменная и не надо переменную "var n" приводить к числу.

Ответить

PoZaMus PoZaMus 20.03.2014 21:31:20

Javascrip 4 3-я задания а) не могу реализовать функцию printAction()

Ответить

tikkiwiki tikkiwiki 27.03.2014 11:33:00

Пишите в службу поддержки.

Ответить

Strateg Strateg 05.11.2014 19:21:02

всем привет! Михаил, или кто другой плизз, подскажите, почему вместо моего текста в алерте - крякозябры?? http://clip2net.com/s/jdWLSR кодировка "UTF-8 без BOM"

Ответить

romario_ser romario_ser 15.12.2014 15:26:10

Всем привет!нужна помощь начинающему). С чего хочу начать, есть текстовое поле -"t", в которое при вводе определённого числа, стало активно поле -"a", при другом числе было активно поле -"b". Вот мой код: <input type="text" name="t" size="5"> <input type="text" name="a" size="5" disabled> <input type="text" name="b" size="5" disabled> Не могу понять со скриптом как быть. HELP, пожалуйста подсобите)

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.