Javascript – conversão de número

Javascript tem três funções para converter valores não numéricos em números:
– Número ();
– parseInt ();
– parseFloat ();

String vazia:

Number("") = 0 
parseInt
("") = NaN
parseFloat
("") = NaN

Análise com o primeiro empréstimo de uma carta:

Number("a1") = NaN 
parseInt
("a1") = NaN
parseFloat
("a1") = NaN

Análise com primeiro empréstimo 1 número:

Number("1a") = NaN 
parseInt
("1a") = 1
parseFloat
("1a") = 1

Análise hexadecimal (10):

Number("0xA") = 10 
parseInt
("0xA") = 10
parseFloat
("0xA") = 0

Zeros emprestados são ignorados:

parseFloat("001") = 1 
parseInt
("001") = 1
Number("001") = 1

Analisando números flutuantes com zeros emprestados:

parseFloat("00.1") = 0.1 
parseInt
("00.1") = 0
Number("00.1") = 0.1

Analisando números flutuantes sem emprestar zeros:

parseFloat("0.1") = 0.1 
parseInt
("0.1") = 0
Number("0.1") = 0.1

Analisando booleanos:

Number(true) = 1 
Number(false) = 0
parseFloat
(true) = NaN
parseFloat
(false) = NaN
parseInt
(true) = NaN
parseInt
(false) = NaN

Análise nula:

Number(null) = 0 
parseFloat
(null) = NaN
parseInt
(null) = NaN

Análise indefinida:

Number(undefined) = NaN 
parseFloat
(undefined) = NaN
parseInt
(undefined) = NaN

Analisando NaN:

Number(NaN) = NaN 
parseFloat
(NaN) = NaN
parseInt
(NaN) = NaN

Analisando números flutuantes negativos positivos:

parseFloat("+1.1") = 1.1 
parseFloat
("-1.1") = -1.1
parseInt
("+1.1") = 1
parseInt
("-1.1") = -1
Number("+1.1") = 1.1
Number("-1.1") = -1.1

Wightespace é ignorado:

parseInt(" +1") = 1 
parseInt
(" -1") = -1
parseFloat
(" +1") = 1
parseFloat
(" -1") = -1
Number(" +1") = 1
Number(" -1") = -1

parseInt suporte radix ou base:

parseInt("10",2) = 2 //binary
parseInt
("10",8) = 8 //octal
parseInt
("10",10) = 10 //decimal
parseInt
("10",16) = 16 //hexadecimal

Todos os casos de teste são contratados:
http://jsfiddle.net/zbL7H/3/