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

165
02 октября 2019, 07:40

Почему выводит 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
Как сделать несколько параметров для OnClick?

Как сделать несколько параметров для OnClick?

Всем привет, подскажите пожалуйста как добавить несколько атрибутов в OnClickЕсть код:

103
Использование геттеров/сеттеров в JavaScript [дубликат]

Использование геттеров/сеттеров в JavaScript [дубликат]

Данный вопрос является точным дубликатом:

114
Приходит пустой POST запрос

Приходит пустой POST запрос

Собираю Json и отправляю так:

163
Графики chart.js

Графики chart.js

У меня вопрос на понимание библиотеки chartjs

108