De acordo com a documentação da MDN sobreundefined :
Nos navegadores modernos (JavaScript 1.8.5 / Firefox 4+), undefined é uma propriedade não configurável e não gravável de acordo com a especificação do ECMAScript 5. Mesmo quando não for esse o caso, evite substituí-lo.
Um dos atributos de propriedade de indefinido é que não é gravável.
Mas se eu fizer:
var undefined = 'hello';
var test = undefined;
console.log(typeof test);
//string
Isso significa que eu posso substituir o valor de undefined? O que acontece se alguém faz isso? O JavaScript deve alertar sobre isso?
typeof undefinedretorna "undefined"em circunstâncias normais.
"undefined"é uma string. A questão não é perguntar o que é typeof (typeof undefined)avaliado. Está perguntando o que typeof undefinedavalia. Ele retorna "undefined", não"string"
typeof ______é uma expressão que é avaliada como uma sequência que contém o tipo de ______. Você está entendendo mal a pergunta.
typeof test === "undefined")