この記事では、js の基本的な構文、つまり特定の参照値を持つ変数の型について説明します。必要な方は参考にしていただければ幸いです。
1.変更できない元の値(スタックデータ)(5つ)
数値(数値)、文字列(文字列)、ブール値(ブール値)、未定義、null
ここで、未定義は未定義を意味し、Nullは空を意味します。両者の間には、null には値がありますが、この値は空であるのに対して、unknown は未定義で値がまったくないことを意味します。 null は通常、プレースホルダーとして使用されます。var a = 4; var b = a; a = 10; console.log(b);//4//原始值是把一个值a放到另一个值b里面,改了第一个值a,第二个之值b不变
var arr = [1, 2]; var arr1=arr; arr.push(3); console.log(arr1); //[1, 2, 3] //引用值时把第一个值放到第二个值里面,改变第一个值,第二个值也改变 //引用值是在栈内存里面存放堆的地址,拷贝的是地址,所以改变了arr,实际上是改变了arr指向的地址内存放的内容,而arr和arr1指向同一个地址,故arr1也跟着变
0x0002 | arr1 | 0x0001 |
りー | アドレス | 変数 |
0x0001 | a |
[1,2] | 0x0002 |
| arr1|||||||||||||||||||
0x0001 | 0x0003 arr | [1,3] | |||||||||||||||||||
要避免使用连续赋值符号:下面举两个例子 a = {n:1 b == a={m:1console.log(b); ログイン後にコピー 1.var a = {n:1},在内存中申请两个地址,分别存放a和n; 2.var b = a;申请一个地址存放b,值指向a的地址; 3.a.n= a={m:1}; (1)(这里对变量进行了赋值,因此要重新申请内存)先申请了内存地址n(0x0004)和a(0x0005);由于n值占用了新的内存,故0x0001处 存储值由n:0x0002变为n:0x0004; (2)赋值;a={m:1},申请m地址(0x0006), 因此:a : {m:0x0006}--->{m:1} b: {0x0001}--->{n:0x0004}---->{ n:0x0005}---->{n:{m:0x0006}}--->{n:{m:1}}
var a = {n:1}; var b = a; a={m:1};//a重新赋值,换了一个房间,b仍然指向原来的房间(地址) a.n =a; console.log(a);//{m:1,n:{m:1,n:{..}}}//一直循环 console.log(b);//{n:1} ログイン後にコピー 相关推荐: 以上がJS の基本構文の概要: データ型と変数型の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
最新の問題
CASEを使用して条件付きで価格*数量を取得する方法
sale_price がある場合は、sale_price*quantity を使用して合計価格を表現しますが、sale_price がない場合は、Price_origin*quan...
から 2024-04-03 20:45:07
0
1
390
ReactJs: マップ関数を使用した後に親配列が更新される
基本的に親配列から抽出された新しいキーを配列に挿入しようとしています。抽出された配列に新しいキーを挿入するだけでストア内のメイン配列が変更される理由がわかりません。これは、カスタム...
から 2024-04-03 20:04:17
0
1
352
ヘッダーの中央に画像を表示するにはどうすればよいですか?
まず、私のコードは HTML、CSS、JS の 3 つのファイルに基づいており、HTML の作成には Bootstrap5.1.3 フレームワークを使用していることに注意してくださ...
から 2024-04-01 23:49:58
0
1
372
関連トピック
詳細>
|