Was ist der Unterschied zwischen window.location = und window.location.replace ()?
Gibt es einen Unterschied zwischen diesen zwei Linien?
var url = "http://www.google.com/";
window.location = url;
window.location.replace (url);
InformationsquelleAutor der Frage Aaron Digulla | 2009-12-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
window.location
fügt ein Element in Ihre Geschichte, die Sie können (oder können sollten) klicken Sie auf "Zurück" und gehen Sie zurück zu der aktuellen Seite.window.location.replace
ersetzt die aktuelle Geschichte Element, so dass Sie nicht gehen, um es zurück.Sehen
Fenster.location
:Ach und generell:
wird vorgezogen:
InformationsquelleAutor der Antwort cletus
TLDR;
verwenden
location.href
oder besser verwendenwindow.location.href
;Allerdings, wenn Sie dies Lesen, Sie werden gewinnen, unwiderlegbaren Beweis.
Die Wahrheit ist, es ist in Ordnung zu verwenden, aber warum tun die Dinge, die fragwürdig sind. Sollten Sie auf eine höhere Straße und tun Sie es einfach die Weise, die es wahrscheinlich getan werden sollte.
Dieser code ist vollkommen korrekt syntax-Weise, Logik, Weise, Art und Weise
wissen Sie, das einzige, was falsch mit ihm?
es hat
location
stattlocation.href
was über diese
was ist der Wert von
mystring
? hat jemand wirklich wissen, ohne dabei einige zu testen. Niemand weiß, was genau wird hier passieren. Die Hölle, die ich gerade schrieb und ich weiß nicht einmal wissen, was es tut.location
ist ein Objekt, aber ich bin die Zuweisung einer Zeichenfolge, wird es die Zeichenfolge übergeben, oder übergeben Sie die location-Objekt. Können sagen, es ist eine Antwort, wie diese umgesetzt werden sollten. Können Sie garantieren, dass alle Browser das gleiche tun?Diese kann ich ziemlich viel denke alle Browser mit den gleichen.
Was ist, wenn Sie diese in Maschinenschrift, wird es brechen, denn die Art compiler sagen, das ist wohl ein Objekt sein?
Dieses Gespräch ist so viel tiefer als nur die
location
Objekt jedoch. Was diese Umwandlung wird über welche Art von Programmierer, die Sie sein wollen?Wenn Sie diesen "short-cut", ja es könnte sein, okay heute, Ihr könnte es okay sein morgen, hell, es könnte okay sein für immer, aber Sie sir, sind jetzt ein schlechter Programmierer. Es ist nicht okay für Sie und Sie wird scheitern, Sie.
Gibt es mehr Objekte. Es wird neue syntax.
Definieren Sie möglicherweise eine get-Methode, dauert nur ein string, sondern ein Objekt zurück und das Schlimmste ist, Sie denken, Sie tun etwas richtig, man könnte denken, Sie sind Brillant für diese kluge Methode, weil die Menschen hier haben schändlich Euch in die Irre geführt.
Mit Getter und setter dieser code tatsächlich funktionieren würde, aber nur, weil es getan werden kann, bedeutet nicht, dass es 'KLUG' zu tun.
Meisten Menschen, die Programmierung der Liebe zu Programmieren und zu lieben, um besser zu werden. In den letzten Jahren habe ich so gut und viel lernen. Das wichtigste, was ich jetzt weiß, vor allem beim schreiben von Bibliotheken ist die Konsistenz und Vorhersehbarkeit.
Tun die Dinge, die Sie konsequent tun.
+"2"
<-- das hier analysiert die Zeichenfolge in eine Zahl. sollten Sie es verwenden?oder Sie verwenden sollten
parseInt("2")
?was
var num =+"2"
?Aus dem, was Sie lernen, aus den Köpfen der stackoverflow-ich bin nicht allzu hoffnungsvoll.
Wenn Sie beginnen, nach diese 2 Wörter konsistent und vorhersehbar. Sie werden wissen, die richtige Antwort auf eine Tonne von Fragen auf stackoverflow.
Lassen Sie mich Ihnen zeigen, wie dies zahlt sich aus.
Normalerweise Stelle ich
;
auf jede Zeile javascript, die ich Schreibe. Ich weiß, es ist ausdrucksstärker. Ich weiß, es ist mehr klar. Ich habe meine Regeln. Eines Tages beschloss ich, nicht zu. Warum? Weil so viele Menschen sagen mir, dass es nicht mehr benötigt und JavaScript tun können, ohne. Also entschied ich mich, dies zu tun. Nun, da bin ich inzwischen sicher, dass ich selbst als Programmierer (wie sollten Sie genießen Sie die Früchte der Beherrschung der Sprache), ich habe etwas geschrieben, was sehr einfach und ich habe nicht überprüfen. Ich gelöscht ein Komma und ich glaube nicht, dass ich brauchte, um re-test für eine so einfache Sache wie das entfernen eines Kommas.Schrieb ich etwas ähnliches in es6 und babel
Dieser code fehlschlagen und die ewig dauerte, um herauszufinden.
Für einige Grund, was es sah, war
tief verborgen in den source-code war es mir zu sagen "Hallo Welt" ist nicht eine Funktion.
Für mehr Spaß-Knoten nicht in die source-Karten von transpiled code.
Verschwendet so viel dumme Zeit. Ich war die Präsentation an jemand, der so gut wie ES6 ist brilliant und dann hatte ich, um Debuggen zu starten und zu demonstrieren, wie Kopfschmerzen kostenlos und besser ES6 ist. Nicht überzeugend ist es.
Ich hoffe, das beantwortet deine Frage. Dies wird eine alte Frage, es ist mehr für die zukünftige generation, Menschen, die noch lernen.
Frage, wenn Leute sagen, es spielt keine Rolle, so oder so funktioniert. Chancen sind klüger, erfahrener Mann wird Ihnen sagen anderen Weise.
was ist, wenn jemand das überschreiben des location-Objekts. Sie tun einen shim für ältere Browser. Es werden einige neue Funktion, die muss shimmed und Ihre 3 Jahre alte code wird nicht.
Mein letzten Hinweis zum nachdenken.
Schreiben klare, zielgerichtete code tut etwas für Ihren code, können Sie nicht beantworten, mit richtig oder falsch. Was es tut, ist es Ihr code, der enabler.
Können Sie mehr Dinge, plugins, Bibliotheken mit aus Angst vor der Unterbrechung zwischen den codes.
für den Datensatz. verwenden
window.location.href
InformationsquelleAutor der Antwort Lpc_dark