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

1,00
р.
Почему выводит undefined?
function rush (filename){ (function(){ var res = filename.split(".") var b = res[res.lenght - 1] return b })() } alert(rush("work.tt"))
Заранее благодарен!

Ответ
Почему выводит 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"))