Поскольку я готовил функцию, я заметил, что она первоначально возвращалась «неопределенной» вместе с другой информацией, которую она должна была вернуть. Вот that function:Почему оператор '+ =' возвращает undefined?
foo = function(bar) {
var glorp;
if(typeof bar == 'undefined'){bar = 'baz'}; // there will be other conditions later
if('baz' == bar) {
glorp += 'this, ';
glorp += 'that, ';
glorp += 'the other';
return glorp;
}
}
Я вызываю функцию:
$('#glorp').append(foo());
Возвращение заключается в следующем:
undefinedthis, что, с другой
когда я ожидал этого:
это, то другой
я сделал совсем немного копать, но я не смог найти ничего окончательного. Затем я изменил первый из операторов glorp
на =
, и неопределенное сообщение исчезло.
С glorp
объявляется при открытии функции, которая должна быть определена в операторе if
, и кажется, что это так, поскольку «это» успешно возвращается.
Что возвращается 'undefined'?
Вы не инициализируете переменную. Первое, что вы делаете, это операция '+ =', и в этот момент значение переменной 'undefined'. – Pointy
Начальное значение переменной 'undefined'. –
Просто измените его на "var glorp =" ";" –