Überprüfen auf undefinierte Variablen mit Underscore.js

Ich habe ein Problem mit Underscore.js-Vorlagen und Internet Explorer. Hier ist ein Teil der Vorlage, der Probleme verursacht:

<p>
  <% if ( typeof description !== 'undefined' ) { %>
    <%- description %>
  <% } else { %>
    No description
  <% } %>
</p>

Wenn die Variabledescription ist undefiniert (was bedeutet, dass ich es überhaupt nicht an die Vorlage weitergebe, die Variable existiert nicht), dies funktioniert gut in Safari, Firefox, Chrome.

Internet Explorer funktioniert jedoch nicht richtig. Anstatt zu zeigenNo description IE8 und IE9 zeigen[object HTMLMetaElement]und IE7 zeigt[object].

Überprüfung des Ergebnisses vontypeof description kehrt zurückundefined in Safari, Firefox, Chrome, aber anscheinend kehrt Internet Explorer zurückobject stattdessen.

Underscore.js habe ich schon ausprobiert_.isUndefined(value) Funktion, aber das funktioniert nicht, wenn die Variable nicht existiert.

Kennt jemand eine Problemumgehung für dieses Problem? (Beachten Sie, dass ich die Variable nicht ohne Wert bereitstellen kann - sie existiert entweder oder sie existiert nicht)

Aktualisieren In einem der Github-Probleme von Underscore.js habe ich eine Problemumgehung gefundenhttps://github.com/documentcloud/underscore/issues/237#issuecomment-1781951

Kann jemand erklären, warum sich der IE anders verhält und warum die Problemumgehung tatsächlich funktioniert?

Update 2 @ John-DavidDalton hat einen weiteren, besseren Workaround in den Kommentaren unten bereitgestellt (direkt darauf zu verlinken scheint nicht zu funktionieren)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage