Chrome/Firefox-Konsole.melden Sie immer fügt eine Zeile mit dem Inhalt " undefined
Jedes mal console.log
ausgeführt wird, wird eine Zeile mit dem Inhalt undefined
angehängt, um die Ausgabe-Protokoll.
Passiert sowohl in Firefox und Chrome auf Windows und Linux.
Also, was ist Ihre Frage? Könnten Sie zeigen einige Beispiel-code, der produziert? Was ist das Verhalten, die Sie erwarten?
Das ist vermutlich nicht genug Informationen, um Ihr problem zu lösen
Ich gab mein bestes, obwohl es in der Tat fehlen einige Infos 🙂
Mein Problem war, dass ich nur die Anzeige der - Fehler und Warnungen Anzeige der Botschaften und info für mich gearbeitet.
Das ist vermutlich nicht genug Informationen, um Ihr problem zu lösen
Ich gab mein bestes, obwohl es in der Tat fehlen einige Infos 🙂
console.log()
zurück undefined
.Mein Problem war, dass ich nur die Anzeige der - Fehler und Warnungen Anzeige der Botschaften und info für mich gearbeitet.
InformationsquelleAutor N. Chamaa | 2013-01-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie
console.log()
aus einer JS-Datei, dieseundefined
Zeile sollte nicht angehängt werden.Wenn Sie
console.log()
von der Konsole selbst, es macht Sinn. Dies ist der Grund, warum: In der Konsole geben Sie den Namen einer Variablen (zum Beispiel versuchen Siewindow
), und es gibt info darüber. Beim ausführen von void-Funktion (wie Konsole.log) von der Konsole aus, die es auch gibt Infos über den return Wertundefined
in diesem Fall.Getestet habe ich beide Fälle auf meinem Chrome (Mac ver 23.0.1271.101) und in der Tat sehe ich die
undefined
Linie, wenn ich es in der console. Dieseundefined
wird auch angezeigt, wenn ich Schreibe diese Zeile in der Konsole:var bla = "sdfdfs"
Nun, dies ist das erwartete Verhalten. Alles funktioniert wie es sollte. Sie können aktivieren Sie die Erweiterungen wieder 🙂 Nur ausführen Konsole.log aus einer JS-Datei, und Sie werden nicht sehen dies. Warum sind Sie mit der Konsole.log aus der Konsole überhaupt? Sie können geben Sie einfach alle Variablen-name ohne Konsole.melden
aber es war nicht vor , das ist, warum!!
Vielleicht ist Ihr Chrome wurde aktualisiert, und dieses Verhalten begann, in den neueren Versionen.. Da das gleiche passiert in meinem Chrome (auf Mac), die ich sehr bezweifle, dass es ein problem..
InformationsquelleAutor talkol
Obwohl talkols Antwort ist ok, ich versuche es mehr gerade:
JavaScript ist konzipiert als eine dynamische Sprache, was bedeutet, dass der Typ (string, void, boolean,...) von einer Funktion zurückgegebene Wert ist nicht vorgegeben. Wenn eine Funktion keine return-Anweisung oder eine leere return-Anweisung ohne Wert, JavaScript automatisch gibt Sie undefined zurück. Das bedeutet, dass in jeder JavaScript Funktion etwas zurückgibt, zumindest nicht definiert.
Damit die Funktion
console.log()
im Chrome-Konsole verwendet entweder keine oder eine leere return-Anweisung, so dass der Rückgabewert der Funktion nicht definiert ist. Diese Funktion zurückkehren Wert wird auch angezeigt, in der Chrome-Konsole.[Wenn jemand weiß, wo zu finden die definition der
console.log()
- Funktion in Google Chrome-Quelltext, bitte Kommentar mit den link, dann können wir sogar noch weiter gehen und den Blick auf den echten code, wäre nett.]Quellen:
Ich habe versucht, das zu tun, aber ich bin nicht in der Lage, zu kommentieren, Mangels genügend Ruf ("Sie müssen 50 Ruf zu kommentieren"), so dass ich dachte, mit der "unoptimal" Art und Weise zu beantworten, anstatt zu kommentieren wäre besser, dann nicht posten.
Das ist fair. Ich kann mich nicht entfernen, mein downvote ohne Sie Bearbeiten die post, obwohl. Geist erarbeiten, was befindet sich unter diesem link in die Antwort? Wenn Sie das tun können, dann kann ich meine Abstimmung ändern 🙂
Vielen Dank Dan für deine Geduld, getan, ok? 🙂
InformationsquelleAutor Paul Vincent Beigang
Folgen Sie der Abbildung, um dieses problem zu lösen:
InformationsquelleAutor Philippe Piheyns
Console-Umgebung in Ihrem browser wurde entwickelt, um die Letzte Anweisung Ausdruck in ein Programm und testen Sie es für einen Wert, und dann zeigen Sie, dass Wert.
Das Ergebnis einer Zuweisung Ausdrucks ist der Wert, der zugewiesen wurde.
Also die JavaScript-engine nicht nur eine Zuweisung, aber die Konsole wird ein zusätzlicher Schritt erforderlich, die festlegen, was meine Letzte Aussage ist, geben Sie diesen Wert zurück. Das ist, warum druckt er 2:
In Aussagen, die keinen Rückgabewert erhalten Sie so etwas wie undefined.
InformationsquelleAutor Mahvash Fatima
Was Sie tun können, ist, einfach erstellen Sie Ihre eigene Konsole.log-like-Funktion mit einem return um dieses Verhalten zu ändern, wenn Sie tun eine Menge der Kodierung in der developer console. Hier ist ein Beispiel, wie das aussieht in der Entwickler-Konsole:
InformationsquelleAutor Sceptic
Wenn Sie
console.log
zu emittieren mehrere Werte in eine Zeile, hier ist ein hacky-alternative:(Bessere Ideen sind willkommen, dies könnte die Luft sprengen in bestimmten Fällen)
InformationsquelleAutor i336_