Oi Guilherme, tudo bem?
Realmente se trata de uma convenção da comunidade. Utilizamos o underscore para definir que determinado elemento deve ser tratado como privado.
Não existe nada oficializado em relação à essa pratica, porém a prática de se utilizar ou não está diretamente ligada à decisão da equipe. Entretando, existem algumas discussões relacionadas à isso, como você pode ver:
Javascript Identifiers
E também nessa discussão.
Contudo, algo bastante comum é que equipes e empresas sigam guias de estilo de código de outras empresas (Style Guides), ou definam um guia próprio. Atualmente temos 3 style guides bastante utilizados, da Airbnb, Js Standard e Google.
No style Guide da Airbnb, é recomendado que você não utilize underscore para sinalizar um método/elemento privado.
No JS Standard, underscore não é mencionado.
No Google Style guide, a recomendação é que o underscore apareça no final do nome do método/elemento, junto com uma anotação @private.
O legal dessa conversa é que não existe maneira correta, o correto é definir um junto de sua equipe e seguir as regras à risca, de maneira a se padronizar o código, evitando que vire uma bagunça. Também é possível configurar Linters para validação do seu código seguindo as recomendações desses style guides, facilitando bastante a vida.
Dito tudo isso, recomendo que dê uma olhada em qual te agrada mais, ou se tem interesse de definir um estilo próprio. Particularmente, hoje em dia vejo bastante gente utilizado o underscore no início para definição de elementos privados. Mas vai do gosto de cada um.
Espero que tenha esclarecido.
Abraços e sucesso.