Зачем нужен return вообще кроме окончания функцыи?
функция всегда что-то возвращает. чтобы указать, что именно функция должна возвратить, используется ключевое слово return. это и есть его суть. даже если его(return) нет в теле функции, функция все равно вернет undefined по умолчанию.spoilerэта функция вернет undefined, т.к. ключевого слова return нет.function func() {
  var a = 5;
  var b = 10;
  var sum = a + b;
}
var result = func()
console.log(result) // undefined
эта функция вернет строку 'i love js', т.к. вы явно на это указали с помощью ключевого слова return.function func() {
  var a = 5;
  var b = 10;
  var sum = a + b;
  return 'I love js';
}
var result = func()
console.log(result) // 'I love js'
вернет сумму двух чиселfunction func() {
  var a = 5;
  var b = 10;
  var sum = a + b;
  return sum;
}
var result = func()
console.log(result) // 15
вернет сумму двух чиселfunction func(a, b) {
  var sum = a + b;
  return sum;
}
var result = func(3, 7)
console.log(result) // 10
тоже самоеfunction func(a, b) {
  return a + b;
}
var result = func(2, 2)
console.log(result) // 4
следующие две функции возвращают undefined. первая явно, вторая неявноfunction func1() {
  return undefined;
}
var result = func1()
console.log(result) // undefined


function func2() {
  
}
var result = func2()
console.log(result) // undefined
вернет другую функциюfunction func() {
  return function () {
    return 'ааа сложнааа'
  };
}
var result = func()
var result2 = result()
console.log(result) // function func()
console.log(result2) // 'ааа сложнааа'
console.log(func()()) // 'ааа сложнааа'
как только в функции встречается это ключевое слово, интерпретатор немедленно останваливает выполненние функции(выходит из нее) и возвращает то что написано после этого ключевого слова. именно поэтому этот цикл выполнит всего лишь одну итерацаю, а не 100, как и должно, и вернет 1.function func() {
  for (var i = 1;  i < 100; i = i + 1) {
    return i
  }
}
var result = func()
console.log(result) // 1
а вот так вернет 100function func() {
  for (var i = 1;  i < 100; i = i + 1) {
    
  }
  return i
}
var result = func()
console.log(result) // 100
а вот так вернет undefinedfunction func() {
  for (var i = 1;  i < 100; i = i + 1) {
    
  }
  return 
}
var result = func()
console.log(result) // undefined
Возьмем на примере элементарной задачи. Сделаем функцию для сложения двух чисел.function sum(a,b){
    var sum = a +b;
    return sum;
}

var a1=2;
var a2=3;
var b=sum(a1,a2);
Это очень простая функция и поэтому можно было бы обойтись и без неё. А теперь представь, что тебе нужно ну хотя бы проверить тип входящих данных и необходимо привести данные к нужному типу. Всё это будет удобно сделать внутри функции.