Angenommen, ich habe den folgenden Ereignishandler:Warum sind diese undefinierten Variablen nicht gleich Javascript?
function handleCsvDump(e) {
console.log(e.currentTarget.getAttribute('download'));
e.currentTarget.download = undefined;
console.log(e.currentTarget.getAttribute('download'));
console.log(e.currentTarget.getAttribute('download') === undefined);
Die an die Konsole angemeldet Informationen, wenn die entsprechende Schaltfläche geklickt wird:
mycsv.csv
undefined
false
Warum false
der letzte Wert ist? Seit e.currentTarget.getAttribute('download')
ist undefined
, sollte es nicht wahr sein? Wenn dies der falsche Weg ist, wie kann ich testen, ob eine Variable nicht definiert ist?
Blick auf [der Dokumentation getAttribute()] (https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttribute): * getAttribute() gibt den Wert eines angegebenen Attributs für das Element zurück. Wenn das angegebene Attribut nicht existiert, ist der zurückgegebene Wert entweder Null oder "" (der leere String); * –
Sind Sie sicher, dass, wenn Sie 'download = undefined', es nicht zu einer Zeichenkette zwang, und Setzen Sie den Wert auf "undefined" '. Sieht Ihr Konsolenprotokoll aus wie "mycsv.csv", "undefined", "false" oder "mycsv.csv", undefined, false "? –
James, das Konsolenprotokoll war wie 'mycsv.csv'. "undefiniert", "falsch". Es gab keine Anführungszeichen. –