Хотя я не рекомендую отменять обычное управление историей браузера (кнопка «Назад»), чтобы использовать его по своему усмотрению ....
Я думаю, что единственное, что вы пропустили в своем примере, это то, что закрытие Кнопка не должна закрывать модальное само по себе, а вместо этого просто выполнить событие кнопки (которое в конечном итоге закроет модальное).
Это простое исправление, и оно будет работать так, как вы хотели.
Спецификация языка ECMAScript, разделите 12.4, говорит:
ExpressionStatement не может запуститься с
function
ключевое слово, потому что это могло бы сделать это неоднозначным с FunctionDeclaration.
Таким образом, Ваш случай 1 не позволяется, потому что он мог бы привести к неоднозначностям на языке. Другие случаи являются различными видами операторов (не ExpressionStatements), в котором это не проблема, таким образом, конструкция позволяется там.