Je ne suis pas quelqu'un qui a fait beaucoup en javascript. Mon parcours est en Java/C++. Je travaille actuellement sur un projet qui utilise beaucoup de javascript et je suis tombé sur quelque chose qui n'a pas de sens pour moi mais j'espère que certains gourous javascript là-bas peuvent me donner une bonne explication logique.Javascript non défini, les chaînes vides, et si les déclarations
var noDefinition = undefined;
var emptyString = "";
var noDefinitionAndEmptyString = noDefinition + emptyString;
console.log("NoDefinition");
console.log(noDefinition);
console.log("EmptyString");
console.log(emptyString);
console.log("noDefinition+emptyString");
console.log(noDefinitionAndEmptyString);
console.log("************************");
if(noDefinition == undefined)
{
console.log("No Definition is undefined");
}
if(emptyString == undefined)
{
console.log("emptyString is undefined");
}
if(noDefinitionAndEmptyString == undefined)
{
console.log("noDefiniton and emptyString is undefined");
}
Le code ci-dessus produit les résultats suivants dans la console:
[INFO] NoDefinition
[INFO]
[INFO] EmptyString
[INFO]
[INFO] noDefinition + emptyString
[INFO] undefined
[INFO] * ** * ** * ** * **
[INFO] Aucune définition n'est pas défini
Comme vous pouvez le voir quand je sortie les variables noDefinition et emptyString à la console, il produit une sortie vide. Quand je les concatène, la console produira un indéfini. Cependant, si je continue à utiliser une instruction if et compare chacun d'entre eux à undefined. Le seul qui s'exécute est le premier.
Cela se produit même si, mis à une console, la valeur apparaît simplement vide. Aussi la concaténation qui apparaît comme indéfinie dans la console échoue sa comparaison contre undefined et ne s'exécute jamais. Je suis confus par cela et j'espère que quelqu'un peut me donner une explication sur ce qui se passe.
double possible de [Javascript: non défini == undefined?!] (http: // pile overflow.com/questions/776950/javascript-undefined-undefined) –