July 18, 2022

Learn JavaScript #6. Условное ветвление: if, '?'.

Иногда нам нужно выполнить различные действия в зависимости от условий.

Для этого мы можем использовать инструкция if и условный оператор ?, который также называют оператором "вопросительный знак".

Содержание

Условное ветвление: if, '?'.

Блок "else"

Инструкция if может содержать необязательный блок "else" ("иначе"). Он выполняется, когда условие ложно.

Например:

let year = prompt('', '');

if (year < 2015) {
  alert( 'Это слишком рано...' );
} 

else if (year > 2015) {
  alert( 'Это поздновато...' );
}

else {
  alert ( 'Верно!' );
} 

Блоков else if может быть и больше. Присутствие блока else не является обязательным.

Всё остальное либо уже было известно, либо являлось бесполезным и ненужным, поэтому было пропущено.

Задачи

If (строка с нулём)

Выведется ли alert?

if ('0') {
  alert( 'Hello' );
}

// Да, выведется, так как строка не является пустой и становится true

Название JavaScript

Используя конструкцию if..else, напишите код, который будет спрашивать: "Какое "официальное" название JavaScript?"

Если пользователь вводит "ECMAScript", то показать: "Верно!", в противном случае отобразить: "Не знаете? ECMAScript!"

let officialNameJS = prompt( 'Какое "официальное" название JavaScript?', '');
  
  if (officialNameJS == "ECMAScript") {
    alert( 'Верно!' );
  }
  else {
    alert( 'Не знаете? ECMAScript' );
  } 

Покажите знак числа

Используя конструкцию if..else, напишите код, который получает число через prompt, а затем выводит в alert:

  • 1, если значение больше нуля
  • -1, если значение меньше нуля
  • 0, если значение равно нулю

Предполагается, что пользователь видит только числа.

let num = prompt( 'Ввведите случаное число', '' );

  if (num > 0) {
    alert( 1 );
  }
  else if (num < 0) {
    alert( -1 );
  } 
  else {
    alert( 0 );
  }

// Долго не мог понять, почему не работает, в итоге дошло, что else идёт
// без условия

Последние два задания просят переписать код 'if...else' в код с использованием '?'. Возможно я ошибаюсь, но выглядит этот оператор настолько страшно, что уж лучше десятка лишних строк с if...else, нежели нечитаемые вопросики. Задания были пропущены.


Telegram-канал: unknown.dev