Вы должны быть осторожны, чтобы не размещать теги скрипта в недопустимых местах, как это указано Smamatti. Вам также следует либо загрузить теги сценария в конце документа, либо в заголовок документа в сочетании с функцией загрузки документа. Причина этого в том, что вы не хотите, чтобы ваш код javascript работал так, как он у вас есть, поскольку тег html еще не создан, так как же сценарий может работать на чем-то, что еще не существует?