Après recherche, il a été constaté qu'il y a une grande différence entre les deux. Je ne sais pas quelle est la différence entre les deux en anglais. Les résultats de la recherche sont les suivants
Test os : ubuntu
Test navigateur : chrome
Cas de test 1
console.log(a)
Rapport d'erreur ReferenceError : a n'est pas défini
Cas de test 2
var a
console.log (a)
Aucun Une erreur est signalée, mais le résultat n'est pas défini
Cas de test 2
var b = {};
console.log(b.a)
Aucune erreur n'est signalé, mais la sortie n'est pas définie
Cas de test 3
function c() {
}
var d = new c(); Aucune erreur n'est signalée, mais undefined est affiché
À propos de typeof
Ci-dessus Tous les objets utilisés pour les tests renvoient String("undefined") en utilisant typeof
À propos de l'opération OR ||
var d = a||3
Erreur a non défini
var a;
var d = a || 3
Résultat : d==3
var c = 22 || 44
c==22
var c = false || 33
c = = 33
if(x) {
}
Rapport d'erreurs
var x
if(x) {
}
if ne sera pas exécuté
Résumé :
Il existe deux types d'indéfinis dans js Bien que typeof renvoie String("undefined")
Après avoir été défini, mais sans aucune opération ni. une propriété non définie d'un objet, elle peut être utilisée pour des opérations undéfinies, peut être utilisée comme deuxième type d'opération logique
variable, qui est complètement indéfinie et n'a pas d'arrière-plan (x.a, bien que x n'ait pas d'attribut, mais cela donne x face), c'est un type d'erreur et ne peut être utilisé que si l'utilisation de la fonction typeof
ou une opération en js ne renvoie pas de valeur booléenne, mais renvoie la dernière valeur calculée par js pour les deux conditions, comme 1 ||2 1 est vrai, 2 n'a pas besoin d'être calculé, donc 1||2 == 1 a||1 Erreur
var a|| 1 == 1; un dictionnaire et traduit
undéfini peut être traduit par : peu clair, c'est-à-dire ne pas savoir à quoi il sert
et non défini peut être traduit par undéfini.