Após a pesquisa, há uma grande diferença entre os dois.
Teste OS: Ubuntu
Navegador de teste: Chrome
Caso de teste 1
console.log (a)
ReferenceError: A não é definido
Caso de teste 2
var a
console.log (a)
Nenhum erro foi relatado, mas a saída foi indefinida
Caso de teste 2
var b = {};
Console.log (BA)
Nenhum erro foi relatado, mas a saída foi indefinida
Caso de teste 3
função c () {
}
var d = novo c ();
Console.log (DA)
Nenhum erro foi relatado, mas indefinido
Sobre o tipo de
Todos os objetos acima usados para teste são retornados com o tipo de string ("indefinida")
Sobre ou operação ||
var d = a || 3
Relatar um erro não definido
var a;
var d = a || 3
Resultado: d == 3
var c = 22 || 44
c == 22
var c = false || 33
c == 33
if (x) {
}
Relatar um erro
var x
if (x) {
}
Se não for executado
Resumir:
Existem dois tipos de indefinição em JS, embora o retorno seja string ("indefinido")
Após a definição, mas sem qualquer operação ou propriedade indefinida de um objeto, ele pertence a indefinido que pode ser usado para operação e pode ser usado como uma operação lógica.
O segundo tipo de variável é completamente indefinido e não possui plano de fundo (Xa, embora X não tenha um atributo, mas fornece x face) e não pode ser usado como tipo de erro, a menos que a função TypeOF seja usada.
A operação ou em JS não retorna o valor BOOL, mas retorna o valor calculado por JS na última condição de ambos os lados. 2 == 1 a || 1 Relatório um erro
var a; a ||.
Eu encontrei este dicionário e traduzi
Indefinido pode ser traduzido para: pouco claro, isto é, eu não sei o que fazer
E não definido pode ser traduzido para indefinido