Суптилност наредбе 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) );

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