Coincidência de nome de função e variável em JavaScript

Do exposto acima, segue-se que a existência de uma variável e de uma função com o mesmo nome pode facilmente levar a um problema.

No exemplo a seguir, a função func será sobrescrita e, em seu lugar, ficará a string 'string':

javascriptfunction func() {
  return '!';
}

func = 'string'; // sobrescrevemos a variável com a função por uma string
func(); // obteremos um erro, pois func não é uma função

Para evitar que isso aconteça, deve-se seguir uma regra comum a todas as linguagens de programação: funções devem ser verbos e variáveis - substantivos.