変数とは何ですか?ほとんど (特に mozilla Web ドキュメント(MDN)) は、これを「値のコンテナー」と説明します。単純な値から関数まで、あらゆる種類のプログラムを参照する名前付きコード。
var foo = "I pity the..."; const group =['Rhonda', 'Jamey', 'Kori', 'Greg']; let greed = function (root) { console.log("of all evil"); }
変数を「物を保管できる小さな段ボール箱のようなものです。(MDN)」と記述するのが一般的です。これらの箱がなければ、私たちの価値観は萎縮して死んでしまうでしょう。コードの熱は、実装後すぐに消滅します。書籍Eloquent JavaScript(EJS) で述べられているように、変数は「...すぐに使用されなければ、(それらは) 消滅してしまいます」必要があります。永続的な式用のコンテナを作成するには、次の 2 つの方法があります:
var question; let box; const cat;
var question = true; let box = null; const cat = 4 + 3;
= を読み取ると、常にその左側にあるものに右側にあるものの値が与えられます。このようにして、ボックス
には何も入っていないことがわかります。
他の開いたボックスと同様に、その中身はいつでも好きなときに移動できます。 "* = 演算子を既存の (変数) に対していつでも使用して、変数を現在の値から切り離し、新しい値を指すようにすることができます:*"(EJS)
let greenLight = false; //*the greenLight box contains the false value* greenLight = true; //*greenLight is now set to the value true*
このボックスには false 値が存在していましたが、簡単な変更を 1 つ行うだけで、まったく新しい値が内部に存在します。とても簡単です!
さて、コンテナ、ボックス の概念を徹底的に調査し、内面化したように感じます。では、なぜそれが間違っているのかを見てみましょう。
ご覧になったかもしれませんが、変数の「コンテナ」哲学は多くのことに非常に適しています。それでも、ある時点で、ボックスは複雑になり始めます:
let a = 5; let b = a; a = 7; console.log(b);// 5
ボックス b の中にボックス a があり、ボックス b に新しい値が入っている場合、a にも同じことが当てはまりますか?つまり、2 つの箱を一緒にすると、中身が同じになることが多いですよね。 不正解です。 このようなことを考えると、変数のボックスの概念が混乱してきます。変数は実際にはボックスのように動作しないことがよくあるからです。
実際のところ、この場合、データはずっとそこにあったと考えたほうがよいでしょう。本質的に、変数はそのデータを重要かつアクセスしやすくするものにすぎません。プログラムはtechSpaceの広大な範囲に浮遊しており、「(プログラムを)捕まえて保持する」(EJS)かどうかは私たちの変数次第です。最初は少し奇妙ですが、よく考えてみると非常に理にかなっています。 Eloquent JavaScript では次のように説明されています:
"バインディングは箱ではなく触手として想像してください。バインディングには値が含まれていません。値を把握します。2 つのバインディングは同じ値を参照できます。プログラムは、まだアクセスできる値にのみアクセスできます。何かを思い出す必要があるときは、触手を伸ばして保持するか、既存の触手を再びそれに接続します。"
さて、ここでのアタッチは少し欺瞞的です。これらの「触手」は、保持できる十分に小さい値 (64 ビット) のみを「把握」するからです。これらの値は「simple dataTypes」(EJS) と呼ばれ、数値、文字列、ブール値が含まれます。値が単純な場合、私たちの触手はそれを包み込み、保持します。一種の。これを 値による渡し(GFG) と呼びます。 「ある種」と言うのは、触手が探す値が十分に単純であれば、わざわざ同じ値を保持する必要はなく、ただコピーを作成してそれ自体で保持するだけだからです。
上記の例では、b の触手は a と同じ 5 をわざわざ掴もうとはしませんでした。そのため、a が縞模様を変え、その 5 が宇宙に消えたとき、b には元々保持していた 5 のコピーがまだ残っていました。次に、少し違うことを試してみましょう:
var a = [13, 40, 27]; var b = a; b.push(5, 1)//push is a method that moves these values into the end an array console.log(a);//[13, 40, 27, 5, 1];
This example is a bit more complex. Our complex dataTypes(arrays, objects, functions) are much to big to go around making copies of them to wrap our tentacles around, so what we do is simply point to the original. An act we like to call Pass by reference(GFG). In this example, b can't hold on to its own array, so when it goes through a change, the original array it points to feels that change pass through it.
This was a small introduction to how we name, grasp, point to, and otherwise utilize data for our own brilliant purposes. It's easy to overlook, but without variables, we would all be lost in a sea of code, digital waters all around us, grasping away as digital water falls right through our fingers. Variables are the boats that carry us all to our destination, and I, for one, appreciate the ride.
References by initial
(MDN)
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Variables
(EJS)
https://eloquentjavascript.net/02_program_structure.html
(GFG)
https://www.geeksforgeeks.org/pass-by-value-and-pass-by-reference-in-javascript/
以上がボックスの中身は何ですか?!: 変数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。