Hola, depende de la situación, el parseInt() devuelve un numero entero de la base especificada y el Number() solo un entero.
parseInt("23jkajsk");
// Devuelve 23 ignorando las letras.
Number("23jkajsk");
// Devuelve "NaN".
Me copie el código de arriba xD
Bueno lo de la base es lo siguiente, hay base 2 (binario), base 8 (octal), base 10 (decimal), base 16(hexadecimal), entre otras. por lo cual con el parseInt() tu puedes especificar en que base lo usas
parseInt("f", 16);
// Devuelve 15, que seria 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
parseInt("11", 2)
// Devuelve 3 que en binarios 11 = 3 en decimal
// puedes tener un parseint en base hexadecimal y si tiene las letras de
// la a hasta la f antes de los números, va a generar un resultado en un entero
// algo así: a343aa
parseInt("a343aa", 16)
//Devuelve 10699690
Por lo que si no vas a especificar una base, no hay ningún lio en usar parseInt o Number.parseInt.