Чтобы ответить на ваш первый вопрос:
Точки с запятой используются в конце операторов.Оператор может рассматриваться как действие или инструкция, которые будут выполняться / выполняться программой.Точка с запятой отмечает конец этой инструкции.Таким образом, когда вы используете точку с запятой в середине инструкции (т.е. когда она не завершена), вы технически досрочно завершаете свою инструкцию, и, таким образом, вы получаете синтаксическую ошибку:
function functionA() {};
function functionB() {};
const c = functionB(functionA(););
Чтобы ответить на ваш второй вопрос:
Когда функция ничего не возвращает, она фактически неявно возвращает undefined:
function functionA() {
}
console.log(functionA());
И так вместо:
;
Само собой, у вас есть что-то вроде этого:
console.log("foo");
undefined;
console.log("bar");