ホームページ > ウェブフロントエンド > jsチュートリアル > JS の基本構文の概要: データ型と変数型

JS の基本構文の概要: データ型と変数型

不言
リリース: 2018-08-13 10:22:14
オリジナル
2563 人が閲覧しました

この記事では、js の基本的な構文、つまり特定の参照値を持つ変数の型について説明します。必要な方は参考にしていただければ幸いです。

1.変更できない元の値(スタックデータ)(5つ)

数値(数値)、文字列(文字列)、ブール値(ブール値)、未定義、null

ここで、未定義は未定義を意味し、Nullは空を意味します。両者の間には、null には値がありますが、この値は空であるのに対して、unknown は未定義で値がまったくないことを意味します。 null は通常、プレースホルダーとして使用されます。

var a = 4;
var b = a;
a = 10;
console.log(b);//4//原始值是把一个值a放到另一个值b里面,改了第一个值a,第二个之值b不变
ログイン後にコピー

2. 参照値(ヒープデータ)

Array(配列)、object(オブジェクト)、function(関数)

注: 変数に値が割り当てられている限り、メモリは再割り当てされます。適用されました

var arr = [1, 2];
var arr1=arr;
arr.push(3);
console.log(arr1); //[1, 2, 3]
//引用值时把第一个值放到第二个值里面,改变第一个值,第二个值也改变
//引用值是在栈内存里面存放堆的地址,拷贝的是地址,所以改变了arr,实际上是改变了arr指向的地址内存放的内容,而arr和arr1指向同一个地址,故arr1也跟着变
ログイン後にコピー

[ 1,2] [1,2,3] <-- arr.push(3)0x0002arr10x0001アドレス値を格納rr

りー

変数

0x0001

a
0x0002arr1

[1,2]

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}}

地址

变量

存储值

0x0001

a (1)

n:0x0002 n:0x0004 ---(1)

0x0002

-n- (1)

1

0x0003

b

0x0001

0x000 4

n (1)

0x0005

0x0005

a (1)

m:0x0006 (2)

0x0006

m (2)

1 (2)

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常用的正则表达式的用法小结

js如何格式化xml字符串并高亮?(附代码)

以上がJS の基本構文の概要: データ型と変数型の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート