4

私はJavaScriptをもっと最近使用しています。このコースでは、JavaScriptを内部から知ることの重要性を強調し続けています。コンソールウィンドウはJavaScriptの算術演算を内部的にどのように処理しますか?戻り値はどこから来ますか?

私はこのような奇妙な疑問を持っています。主にJavaScriptが内部的にどのように動作するかを理解しようとしています。

のは、私は、コンソールで次の計算を行いましょう:

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

が返されている「3」は、どこが正確にから来ていますか?

「x + 2」を最初に評価してから3を返し、メモリのxの値を3に設定すると、または 'x + 2'を評価してxのメモリ空間に保存し、同じメモリ空間からxの値を返しますか?

xの値をそのメモリ空間で変更しても、それを移動させずにxの値を返すこともできます。

また、JavaScriptの内部動作の詳細については、どのように知ることができますか?

ありがとうございます!

+0

コンソールに表示される値は、最後の操作の出力です。 'x = x + 2、name = 100;' ..あなたに良いアイデアを与えるでしょう.. – Rayon

+0

メモリ(変数に関連する)は、私がさらに心配しているものです。基本的にはコンソールが何を返すのかを理解しようとしています。 –

+0

これは、JavaScriptのものよりもREPLのものです。 –

答えて

0

Unixのような端末ベースのシステムで作業したことがあれば、何が起こっているのかを理解することがより簡単になります。コンソールには、bash端末のタイプと考えてください。コマンドライン端末にコマンドを入力してEnterキーを押すと、それは出力で応答するか、何らかのエラーでも応答します。

Chromeコンソールでも同様のことが起こります。 Chromeコンソールを開くたびに、変数や関数が保存されるセッションが保持されます。同じ変数や関数を呼び出したり使用したりすると、単にその値が返されます。あなたが内部で何が起こるか

>> x = 1 

のようなものを入力したとき

はところで新しいプロパティがグローバルwindowオブジェクトで作成してxと呼ばれるということです。したがってx = 1window.x = 1と同じです。これは、コンソールがあなたの割り当てを覚えておいて後でそれを使用する方法です。

私はあなたを混乱させてしまったので、ここでやめます。

+0

いいえ、混乱は起こりません!私が今行っているコースでは、実際にウィンドウの部分をうまく説明してくれました。 'this.x'もうまくいきます:) - 戻り値のように、変数がJSでメモリ内でどのように扱われているのか詳しく調べていますが、それは正確に来ていますか? –

0

あなたはそれが基本的にラインの出力である

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

のようにそのロジックを確認するために、さらにあなたの例を取ることができます。あなたのブラウザで見たいくつかの機能はJavascriptエンジンの上に実装されています。ここには少しトピックに関連したmy favorite talkがあります。

関連する問題