国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JavaScript中變量、指針和引用功能與操作示例

2024-05-06 15:32:10
字體:
來源:轉載
供稿:網友

本文實例講述了JavaScript中變量、指針和引用功能與操作。分享給大家供大家參考,具體如下:

1、變量

我們可能產生這樣一個疑問:編程語言中的變量到底是什么意思呢?

事實上,當我們定義了一個變量a時,就是在存儲器中指定了一組存儲單元,并將這組存儲單元命名為a。變量a的值實際上描述的是這組存儲單元中存放的具體信息。

例如,在JS中

var a;a=10;

第一個語句在存儲器中指定了一組存儲單元,并命名為a;

第二個語句在這組存儲單元中存儲了數字10。

變量a的值為10實際上是說存儲單元組a存儲的信息是10。

假使我們再次對a進行復制操作:

a="hello";

這樣a的值變成字符串”hello”。這很容易理解,我們將存儲單元組a中存儲的信息改為字符串”hello”,顯然原先的數字10將被覆蓋。

2、指針

假使我們在另一個變量b中存儲變量a在存儲器的地址,會發生什么?

我們很容易想到,直接訪問b變量,得到的并不是變量a的值,而是變量a在存儲器中的地址,變量b便被稱為指針。

這樣一個問題產生了:如何通過變量b訪問到變量a的值呢?

在C語言中,常用的是用*,比如:

int c=10,b;int *p;/*p是指向int類型的指針*/p=&c;/* &c獲取變量c的地址,然后賦值給變量p,這樣p存儲的是變量c的地址,即p是指向c的指針*/b=*p;/* *p訪問p指向的對象,然后將值賦值給b*/

在JS中,并沒有指針這種變量類型,但指針的應用卻無處不在。比如:

var o1={b:1};var o2={b:1};o1===o2;//falseo1==o2;//false

這里o1和o2都是相同的對象,為什么不相等呢?這就需要深入理解JavaScript中的引用類型和指針。

首先,我們需要明白:

給o1和o2賦值,并不是o1地址中存儲對象{b:1},o2地址中也存儲對象{b:1}

其次,我們要明白實際發生的操作:

var o1={b:1}實現了在堆內存中創建了一個對象{b:1},o1則存儲了該對象在堆內存中的地址,即o1是一個指針,指向{b:1};

同理,var o2={b:1}也在堆內存中創建了一個對象{b:1},o2存儲了該對象在堆內存中的地址,即o2也是一個指針,指向{b:1};

并且,由于兩個相同的對象{b:1}是先后創建,在堆內存中也不是存儲在相同的地址。

然后,我們還需要知道:

在JavaScript中,引用類型(對象、數組、正則、Date、函數)的比較,實際上是比較指針是否指向存儲器中的同一段地址,只有指向同樣的地址才能相等。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 镇原县| 曲水县| 凤凰县| 城步| 苏尼特左旗| 资溪县| 佛山市| 香河县| 浏阳市| 汉中市| 抚宁县| 阿尔山市| 桃园县| 左权县| 桦南县| 黑河市| 礼泉县| 平舆县| 洪洞县| 庄浪县| 阳东县| 沂水县| 岳普湖县| 静乐县| 宜黄县| 万载县| 小金县| 定日县| 文山县| 华宁县| 喀什市| 博客| 定边县| 加查县| 逊克县| 沐川县| 南涧| 定兴县| 仪征市| 平江县| 武威市|