4

Ich habe in letzter Zeit viel mit JavaScript herumgespielt, und dieser Kurs, den ich durchmache, betont immer wieder, wie wichtig es ist, JavaScript von innen zu kennen.Wie behandelt das Konsolenfenster die arithmetische Zuweisung von JavaScript intern? Woher kommt der zurückgegebene Wert?

Also ich habe diese seltsame Frage, es ist hauptsächlich nur ich versuche zu verstehen, wie JavaScript intern funktioniert.

Sagen wir, ich tun, um die folgende Berechnung in der Konsole:

>> x = 1 
< 1 
>> x = x + 2 
< 3 

Die ‚3‘, die dort zurückgegeben wird, wo es aus genau kommt?

Wie bewertet es zuerst 'x + 2', gibt dann 3 zurück und setzt den Wert von x im Speicher auf 3? Oder würde es 'x + 2' auswerten, es im Speicherbereich von x speichern und dann den Wert von x aus demselben Speicherbereich zurückgeben?

Oder vielleicht einfach nur ändern X-Wert in seinem Speicherplatz, ohne es zu bewegen, dann gibt den Wert von x zurück?

Ich würde auch jede Quelle schätzen, wie ich mehr über die interne Funktionsweise von JavaScript lernen könnte, um weitere Fragen wie diese zu beantworten.

Danke!

+0

Wert in der Konsole gedruckt ist nichts als Ausgabe der letzten Operation .. Versuchen Sie 'x = x + 2, name = 100;' .. Wird Ihnen eine bessere Idee .. – Rayon

+0

Yup, wie diese Ausgabe selbst berechnet wird Erinnerung (in Bezug auf die Variablen) ist, was mir mehr Sorgen macht. Im Grunde versucht zu verstehen, was die Konsole genau zurückgibt, nur um JS besser zu kennen. –

+0

Das ist eher eine REPL-Sache als eine JavaScript-Sache, die ich sagen würde –

Antwort

0

Wenn Sie jemals an einem Terminal-basierten System wie Unix gearbeitet haben, wäre es einfacher zu verstehen, was vor sich geht. Denken Sie an die Konsole eine Art von bash Terminal. Wenn Sie einen Befehl in ein Befehlszeilen-Terminal eingeben und die Eingabetaste drücken, antwortet das Gerät mit einer Ausgabe oder manchmal sogar mit einem Fehler.

Ähnliches passiert in der Chrome-Konsole. Jedes Mal, wenn Sie eine Chrome-Konsole öffnen, behält sie eine Sitzung bei, in der sie Ihre Variablen und Funktionen speichert. Und wenn Sie dieselbe Variable oder Funktion aufrufen oder verwenden, wird einfach dieser Wert zurückgegeben.

BTW, wenn Sie geben so etwas wie

>> x = 1 

was intern passiert, ist die, dass eine neue Eigenschaft x im globalen window Objekt in erstellt genannt. So ist x = 1 das gleiche wie window.x = 1. Auf diese Weise kann sich die Konsole an Ihre Zuweisungen erinnern und sie später verwenden, wenn Sie sie anrufen.

Ich hoffe, ich habe es geschafft, Sie zu verwirren, also werde ich hier aufhören.

+0

Nein, keine Verwirrung verursacht! Der Kurs, den ich gerade durchführe, hat den Fensterteil gut erklärt, 'this.x' funktioniert auch :) - Obwohl ich mehr danach suche, wie Variablen im Speicher von JS" behandelt "werden, wie der zurückgegebene Wert, wo kommt es genau aus? –

0

Sie können Ihr Beispiel nehmen weiter seine Logik, um zu sehen, wie

>> x = 1 
< 1 
>> y = x = x + 2 
< 3 
>> x == y 
< true 

Es besteht im Wesentlichen Ausgang der Leitung ist. Einige Funktionen, die Sie in Ihrem Browser gesehen haben, sind auf der Javascript-Engine implementiert. Hier ist my favorite talk etwas mit dem Thema verwandt.