Olá Giovani!
A principio elas são iguais ao olhar mesmo, ambas são arrays.
A diferença real entre elas é que em uma eu já posso separar o tamanho do espaço de memória para uma, sendo:
var minhaArray = new Array(20)
Neste exemplo já coloquei 20 "espaços" pro array na memória.
var minhaArray = new Array()
Neste outro aqui já não reservei nada, seria a mesma coisa que fazer isso aqui:
var minhaOutraArray = []
Porém, fizermos isso:
var minhaOutraArray = [35]
Criamos uma array com o valor 35 dentro. E criando como criando com colchetes não determina-se o tamanho do array, ele vai aumentar o espaço ocupado de memória conforme adiciona-se itens (com push ou unshift por ex.).
Quanto a dicas de preferência. De forma universal para programação sempre é melhor você separar só a memória que vai usar. Por mais que isso soe como aula de linguagem C a 20 anos atrás quando 32MB de RAM era Wow! e um maloc
podia fazer um estrago (maloc é uma função que aloca memória), ainda é válido.
Portanto a melhor abordagem seria a criação de array sem definir o tamanho se não tiver idéia o quanto vai usar, deixando no automático mesmo. E se você souber, coloca certinho o quanto deve usar faria sentido, mas o JS se você estrapolar não vai dar problema, ela vai fazer o ajuste mesmo assim.
Usar var minhaArray = new Array()
é melhor no sentido de facilidade de leitura, fica bem mais simples de entender no seu código que você quis criar um array
ali.
Mas nada te impede de criar uma array já com os componentes dentro usando. Iniciar ela já atribuindo os elementos é tão legível quanto.
var minhaOutraArray = [1,2,3,4,5]
Espero ter esclarecido e ter ajudado =)
Abraços,
Daniel