Тънко място на return в JavaScript

След като се изпълни инструкцията return - функцията ще завърши работата си и никакъв код повече няма да се изпълни. Вижте пример:

javascriptfunction func(num) {
  return num ** 2;
  
  console.log('!'); // този код никога няма да се изпълни
}

let res = func(3);

Това не означава, че във функцията трябва да има само един return. Но ще се изпълни само един от тях. В следващия пример в зависимост от стойността на параметъра ще се изпълни или първият, или вторият return:

javascriptfunction func(num) {
  if (num >= 0) {
    return '+++';
  } else {
    return '---';
  }
}

console.log(func( 3)); // ще изведе '+++'
console.log(func(-3)); // ще изведе '---'
Задание 1

Какво ще се изведе в конзолата в резултат на изпълнението на следния код:

javascriptfunction func(num) {
  return num;
  
  let res = num ** 2;
  return res;
}

console.log( func(3) );

Обяснете защо.

Задание 2

Какво ще се изведе в конзолата в резултат на изпълнението на следния код:

javascriptfunction func(num) {
  if (num <= 0) {
    return Math.abs(num);
  } else {
    return num ** 2;
  }
}

console.log( func(10) );
console.log( func(-5) );

Обяснете защо.

Задание 3

Какво ще се изведе в конзолата в резултат на изпълнението на следния код:

javascriptfunction func(num) {
  if (num <= 0) {
    return Math.abs(num);
  }
  
  return num ** 2;
}

console.log( func(10) );
console.log( func(-5) );

Обяснете защо.