@calpy

"Uncaught SyntaxError: Unexpected end of input" — что это значит и как с этим бороться?

function test() {
		var finish = 0;

		return function() {
			for (var i = 0; ; i++) {
				if (arguments[i] == "undefined") {
					return finish;
				finish += arguments[i];
				}

			} 
		}
		var x = test();
		x(32,546,3);

сам код
  • Вопрос задан
  • 778 просмотров
Решения вопроса 1
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Вы забыли закрывающую фигурную скобку в конце.
UPD: в конце функции. Еще у вас строка
finish += arguments[i];
недосягаемая, т.к. находится после return.
function test() {
    var finish = 0;

    return function() {
      for (var i = 0; ; i++) {
        if (arguments[i] == "undefined") {
          return finish;
        }
        finish += arguments[i];
      } 
    }
    }
    var x = test();
    x(32,546,3);

UPD UPD: блин, у вас еще и вечный цикл! Вы неправильно сравниваете на undefined. Там не будет такой строки. Вот так надо
if (arguments[i] === undefined) {
   return finish;
}

UPD UPD UPD: еще вы не указали условие завершения цикла, это плохой тон. У объекта arguments (да, это объект а не массив) есть поле length, пусть цикл идет от нуля до length
for (var i = 0; i < arguments.length ; i++) {
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы