Почему не работает такой код js?
Разберем по порядкуfunction ask1(){
var a = prompt("Ввести еще одного пользователя?", "");
  if (a!=null){
        ask();}
        else (test());
    }
Тут лучше использовать confirm. Также тут не правильно используется else. Будет выглядеть так:function ask1(){
      if (confirm("Ввести еще одного пользователя?")) {
        ask();
      } else {
        test()
      }
}
Вторая ошибка в объявлении метода testfunction test(persons) {
        res = persons.join("<br/>");
        document.write("<p>" + res);
}
Вы почему то на вход принимаете массив, но не передаете его в месте вызова. И этот параметр можно опустить.
Метод say.  Вы на вход ожидаете параметр person, нов месте вызова его не передаете.
Так же у вас одна и таже ссылка на person. Т.е. не вводишь нового а меняешь старого и добавляешь его еще раз в массив.
Весь код будет выглядеть так:var persons = [];

    function ask() {
      var person = {}
      
      person.name = prompt("Введите свое имя:");
      person.sname = prompt("Введите свою фамилию:");
      person.age = prompt("Введите свой возраст:");
      
      persons.push(person);
      
      ask1();
    }
    function ask1(){
      if (confirm("Ввести еще одного пользователя?")) {
        ask();
      } else {
        test()
      }
    }

    function test() {
        persons.forEach(person =>  { say(person); document.write("<p></p>");})
    }

    function say(person) {
      document.write("Имя: " + person.name + "<br/>");
      document.write("Фамилия: " + person.sname + "<br/>");
      document.write("Возраст: " + person.age + "<br/>");
      document.write("");
    }
    ask();
Чего-то ты напутал с кодом.let persons = [];
	/*var person = {
		name: '',
		sname: '',
		age: ''
	};*/
	function ask() {
		let person = {};
		person.name = prompt("Введите свое имя:");
		person.sname = prompt("Введите свою фамилию:");
		person.age = prompt("Введите свой возраст:");
		persons.push(person);
		ask1();
	}
	function ask1() {
		let a = prompt("Ввести еще одного пользователя?", "");
		if (a != null) {
			ask();
		}
		else {
			test();
			//либо persons.forEach(say);
		};
	}
	let res;
	function test() {
		res = persons.map((persona, n) => `persona №${n}- name: ${persona.name}; sname: ${persona.sname}; age: ${persona.age}`).join("<br />");
		document.write("<p>" + res+"</p>");
	}

	function say(person, personNum) {
		document.write("Номер: " + personNum + "<br/>");
		document.write("Имя: " + person.name + "<br/>");
		document.write("Фамилия: " + person.sname + "<br/>");
		document.write("Возраст: " + person.age + "<br/>");
		document.write("\n");
	}
	ask();
	//say();