Есть несколько возможных причин, почему функция внутри тега может не работать:
1. Ошибка в коде: возможно, функция написана неправильно или содержит синтаксическую ошибку. В этом случае браузер может не выполнять функцию вообще или выдавать ошибку в консоли разработчика.
2. Необходимое подключение скрипта: чтобы функция работала, необходимо убедиться, что скрипт, содержащий функцию, подключен корректно на странице. Для этого можно проверить, что скрипт указан в правильном месте и синтаксис подключения скрипта корректен.
3. Вызов функции: возможно, функция не вызывается в нужном месте или способе. Убедитесь, что функция вызывается в нужном месте и в нужное время.
4. Конфликт имен: возможно, функция имеет конфликт с другими именами в коде, что мешает ее корректному выполнению. Попробуйте изменить имя функции или проверить, что остальной код не влияет на выполнение функции.
Ответ на вторую часть вопроса, почему выводится только число 2, может быть связан с тем, что код внутри тега содержит только вызов функции, которая возвращает число 2. Возможно, это единственное действие или вывод в коде, поэтому он отображается на странице. Чтобы функция что-то выводила на странице, необходимо добавить соответствующий код внутри функции или перед ее вызовом.