Слабо место на 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) );

Објаснете зошто.