Javascript, var name = 1, "typeof name" fornece "string"? [duplicado

Esta pergunta já tem uma resposta aqui:

ome @var produz um resultado estranho em Javascript [duplicado] 5 respostas

Eu encontrei esse problema estranho, quando escrevo código Javascript como abaixo:

var name = 1;
alert(typeof name); // this will alert "string"
var b = 1;
alert(typeof b); // this will alert "number"

Eu recebi "string" para "typeof name", mas obtive "number" para "typeof b", no entanto, acho que os dois devem ser "number"

E esse código também não será executado:

var name = 1;
if (name === 1) {
    alert("ok")
}

Não alerta, pois o tipo do nome é "string"!

Eu testei o código acima no Chrome e Safari, ambos dão o mesmo resultado. Por que "typeof name" é "string" nesse caso? por que o nome da variável "name" é tão especial?

questionAnswers(1)

yourAnswerToTheQuestion