Après la recherche, il y a une grande différence entre les deux.
Test OS: Ubuntu
Browser de test: Chrome
Cas de test 1
console.log (a)
ReferenceError: A n'est pas défini
Cas de test 2
var a
console.log (a)
Aucune erreur n'a été signalée, mais la sortie n'était pas définie
Cas de test 2
var b = {};
console.log (BA)
Aucune erreur n'a été signalée, mais la sortie n'était pas définie
Cas de test 3
fonction c () {
}
var d = new C ();
console.log (da)
Aucune erreur n'a été signalée, mais non définie
À propos de typeof
Tous les objets ci-dessus utilisés pour les tests sont renvoyés avec le type de chaîne.
À propos ou opération ||
var d = a || 3
Signaler une erreur un non défini
var a;
var d = a || 3
Résultat: D == 3
var c = 22 || 44
c == 22
var c = false ||
C == 33
if (x) {
}
Signaler une erreur
var x
if (x) {
}
Si non exécuté
Résumer:
Il existe deux types de non définis dans JS, bien que le retour soit String ("Undefined")
Après définition, mais sans aucune opération ou une propriété non définie d'un objet, il appartient à un non-défini qui peut être utilisé pour le fonctionnement et peut être utilisé comme opération logique.
Le deuxième type de variable n'est pas complètement défini et n'a pas d'arrière-plan (xa, bien que x n'ait pas d'attribut, mais donne la face x), et ne peut pas être utilisée comme type d'erreur à moins que la fonction de type de type ne soit utilisée.
L'opération OR dans JS ne renvoie pas la valeur Bool, mais renvoie la valeur calculée par JS dans la dernière condition des deux côtés. 2 == 1 A || 1 Signaler une erreur
var a; a || 1 == 1;
J'ai trouvé ce dictionnaire et je l'ai traduit
Undefined peut être traduit en: peu clair, c'est-à-dire que je ne sais pas quoi faire
Et non défini peut être traduit en