Toнкое место 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) );

Объясните почему.