Javascript TRUE n'est pas défini ou entre guillemets
J'ai un fichier XML qui contient
<car>
<id>123</id>
<sunroof>FALSE</sunroof>
<service>TRUE</service>
</car>
Le code suivant ne fonctionne que si j'envelopper VRAI à l'intérieur des guillemets.e.g (service == "TRUE")
var service = tis.find("service").text();
if(service === TRUE){
var service_tag = '<a title="Service" href="">Service</a>'
} else {
var service_tag = '';
}
source d'informationauteur John Magnolia
Vous devez vous connecter pour publier un commentaire.
Sans les guillemets javascript, essayez d'interpréter
TRUE
comme une valeur /expression. Il n'y a pas de valeurTRUE
nativement défini dans le code javascript. Il esttrue
mais javascript est sensible à la casse afin de ne pas lierTRUE
àtrue
.La valeur que vous obtenez de retour de
text()
est unstring
primitive. Écrit"TRUE"
vous donne en retour lestring
"TRUE"
qui ne comparer avec succès avec la valeurservice
JavaScript boolean
true
etfalse
sont en minuscules.Jeu de service est égal à cela, JavaScript sera capable d'interpréter vos valeurs:
son parce que les tripes de l'égalité vérifiez également le type, et le VRAI, il est un identificateur de "VRAI" est une valeur
Différence entre == et === en JavaScript
Ce qui est attendu.
tis.find("service").text();
retourne une chaîne de caractères, pas un booléen, et le JavaScript booléenne de la vérité esttrue
(qui est sensible à la casse, comme tout le reste dans la langue).Cette fonction retourne une chaîne de caractères "TRUE".
Depuis === vérifie le type de bien, il renvoie toujours false.
TRUE
fait référence à une variable nomméeTRUE
qui n'existe pas, de sorte que vous obtenez un message d'erreur."TRUE"
est une chaîne de caractères contenant les caractèresTRUE
. Votre variableservice
contiendra une chaîne, de sorte que la seconde de ces sont ce que vous voulez.