Después de la investigación, hay una gran diferencia entre los dos.
Prueba del sistema operativo: Ubuntu
Examinador de pruebas: Chrome
Caso de prueba 1
console.log (a)
ReferenceError: A no está definido
Caso de prueba 2
var
console.log (a)
No se informaron errores, pero la salida no estaba definida
Caso de prueba 2
var b = {};
console.log (BA)
No se informaron errores, pero la salida no estaba definida
Caso de prueba 3
función c () {
}
var d = new C ();
console.log (DA)
No se informaron errores, pero indefinidos
Sobre typeof
Todos los objetos anteriores utilizados para la prueba se devuelven con typeof.
Acerca de u operación ||
var d = a || 3
Informar un error no definido
var a;
var d = a || 3
Resultado: d == 3
var c = 22 ||
c == 22
var c = falso ||
c == 33
if (x) {
}
Informar un error
var x
if (x) {
}
Si no se ejecuta
Resumir:
Hay dos tipos de indefinidos en JS, aunque el retorno es cadena ("indefinido")
Después de la definición, pero sin ninguna operación o una propiedad indefinida de un objeto, pertenece a indefinido que se puede utilizar para la operación y puede usarse como una operación lógica.
El segundo tipo de variable está completamente indefinido y no tiene antecedentes (xa, aunque X no tiene un atributo, sino que le da a X cara), y no puede usarse como un tipo de error a menos que se use la función typyOF.
La operación OR en JS no devuelve el valor de bool, pero devuelve el valor calculado por JS en la última condición en ambos lados. 2 == 1 A || 1 Informe un error
var a;
Encontré este diccionario y lo traducí
Undefinado se puede traducir a: No está claro, es decir, no sé qué hacer
Y no definido se puede traducir a indefinido