Почему появляется ошибка undefined?

423
09 января 2017, 23:13

Почему выводит undefined?

function rush (filename){
    (function(){
        var res = filename.split(".");
        var b = res[res.lenght - 1];
        return b;
    })();
}
alert(rush("work.tt")); 

Заранее благодарен!

Answer 1

Почему выводит undefined?

Потому что функция rush - ничего не возвращает.

Если убрать все лишнее функцию можно записать так:

function rush (filename){
    (function(){...})();
}

Отсюда хорошо видно отсутствие return. Поэтому результат этой функции всегда - undefined.

Решение "в лоб" - добавление return

function rush(filename) { 
  return (function() { 
    var res = filename.split("."); 
    var b = res[res.lenght - 1]; 
    return b; 
  })(); 
} 
console.log(rush("work.tt"));

При добавлении можно заметить, что все равно не работает. Так как допущена опечатка

lenght -> length

function rush(filename) { 
  return (function() { 
    var res = filename.split("."); 
    var b = res[res.length - 1]; 
    return b; 
  })(); 
} 
console.log(rush("work.tt"));

Теперь видно, что самовызывающаяся функция не нужна

function rush(filename) { 
  var res = filename.split("."); 
  var b = res[res.length - 1]; 
  return b; 
} 
console.log(rush("work.tt"));

Также, для получения последнего элемента массива можно использовать функцию pop

function rush(filename) { 
  return filename.split(".").pop(); 
} 
console.log(rush("work.tt"));

Answer 2
function rush (filename){
    var res = filename.split(".");
    return res[res.length - 1];
}
alert(rush("work.tt"));
READ ALSO
Какой язык лучше и проще использовать для написания компьютерных программ? [требует правки]

Какой язык лучше и проще использовать для написания компьютерных программ? [требует правки]

И ещёНасколько сложно учить JavaScript: легко, средне или вообще сложно?

348
Как из html объекта получить объект jQuery?

Как из html объекта получить объект jQuery?

К примеру, есть у меня некоторый селектор:

360
Не работает fadeIn

Не работает fadeIn

Я подумал возможно этот метод убрали в новой версии jQuery 31

361
Как правильно впихнуть данные в json?

Как правильно впихнуть данные в json?

Всем приветПомогите построить структуру json запроса

320