Free JavaScript course. Sign Up for tracking progress →

JavaScript: else

Let's write a function getTypeOfSentence() to analyze a piece of text and return its type: General sentence for normal sentences and Question sentence for questions.

  getTypeOfSentence('Hodor');  // General sentence
  getTypeOfSentence('Hodor?'); // Question sentence

Implementation:

const getTypeOfSentence = (sentence) => {
  // Declare a variable to store the sentence type
  let sentenceType;
  // Predicate checking the text ending
  // If it ends with '?', it will return true,
  // otherwise, it'll return false
  if (sentence.endsWith('?')) {
    // If the condition above holds true,
    // we have a question sentence.
    // Assign an appropriate value to sentenceType
    sentenceType = 'Question';
  } else {
    // Otherwise, the sentenceType is 'General'
    sentenceType = 'General';
  }

  // Build a string via interpolation
  return `${sentenceType} sentence`;
};

We have added the keyword else and a new block with curly brackets. This block executes only if the condition in if is false.

There are two ways to design an if-else clause. The negation allows you to change the order of the blocks:

const getTypeOfSentence = (sentence) => {
  let sentenceType;
  // Add negation
  // The code blocks with the 'else' and 'if' statements are swapped
  if (!sentence.endsWith('?')) {
    sentenceType = 'General';
  } else {
    sentenceType = 'Question';
  }

  return `${sentenceType} sentence`;
};

Which way is preferable? It is easier for the human brain to reason in a straightforward manner rather than via negation. Try to pick a test that has no negations, and then modify the contents of the code blocks to suit it.

Instructions

Write the normalizeUrl() function that carries out so-called data normalization. It takes a site address and returns it with https:// at the beginning.

The function accepts URLs both as URL or https://URL, but will always return it as https://URL

You can use a method, startsWith(), to check if the string starts with the prefix https://. And then add or don't add https:// accordingly.

Examples:

normalizeUrl("google.com"); // "https://google.com"
normalizeUrl("https://ai.fi"); // "https://ai.fi"

Definitions

  • else is a way to define a block of code that executes if the if condition is not satisfied