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

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

復(fù)制、傳遞和比較數(shù)據(jù)

2019-11-18 11:06:21
字體:
供稿:網(wǎng)友

在 JScript 中,對數(shù)據(jù)的處理取決于該數(shù)據(jù)的類型。

按值和按引用的比較

Numbers 和 Boolean 類型的值 (truefalse) 是按值來復(fù)制、傳遞和比較的。當(dāng)按值復(fù)制或傳遞時,將在計算機內(nèi)存中分配一塊空間并將原值復(fù)制到其中。然后,即使更改原來的值,也不會影響所復(fù)制的值(反過來也一樣),因為這兩個值是獨立的實體。

對象、數(shù)組以及函數(shù)是按引用來復(fù)制、傳遞和比較的。 當(dāng)按地址復(fù)制或傳遞時,實際是創(chuàng)建一個指向原始項的指針,然后就像拷貝一樣來使用該指針。假如隨后更改原始項,則將同時更改原始項和復(fù)制項(反過來也一樣)。實際上只有一個實體;“復(fù)本”并不是一個真正的復(fù)本,而只是該數(shù)據(jù)的又一個引用。

當(dāng)按引用比較時,要想比較成功,兩個變量必須參照完全相同的實體。例如,兩個不同的 Array 對象即使包含相同的元素也將比較為不相等。要想比較成功,其中一個變量必須為另一個的參考。要想檢查兩個數(shù)組是否包含了相同的元素,比較 toString() 方法的結(jié)果。

最后,字符串是按引用復(fù)制和傳遞的,但是是按值來比較的。請注重,假如有兩個 String 對象(用 new String("something") 創(chuàng)建的),按引用比較它們,但是,假如其中一個或者兩者都是字符串值的話,按值比較它們。

注重   鑒于 ASCII和 ANSI 字符集的構(gòu)造方法,按序列順序大寫字母位于小寫字母的前面。例如 "Zoo" 小于 "aardvark"。假如想執(zhí)行不區(qū)分大小寫的匹配,可以對兩個字符串調(diào)用 toUpperCase()toLowerCase()

傳遞參數(shù)給函數(shù)

按值傳遞一個參數(shù)給函數(shù)就是制作該參數(shù)的一個獨立復(fù)本,即一個只存在于該函數(shù)內(nèi)的復(fù)本。即使按引用傳遞對象和數(shù)組時,假如直接在函數(shù)中用新值覆蓋原先的值,在函數(shù)外并不反映新值。只有在對象的屬性或者數(shù)組的元素改變時,在函數(shù)外才可以看出。

例如(使用 IE 對象模式):

// 本代碼段破壞(覆蓋)其參數(shù),所以// 調(diào)用代碼中反映不出變化。function Clobber(param) {    // 破壞參數(shù);在調(diào)用代碼中    // 看不到。    param = new Object();    param.message = "This will not work";}// 本段代碼改變參數(shù)的屬性,// 在調(diào)用代碼中可看到屬性改變。function Update(param){    // 改變對象的屬性;    // 可從調(diào)用代碼中看到改變。    param.message = "I was changed";}// 創(chuàng)建一個對象,并賦給一個屬性。var obj = new Object();obj.message = "This is the original";// 調(diào)用 Clobber,并輸出 obj.message。注重,它沒有發(fā)生變化。Clobber(obj);window.alert(obj.message); // 仍然顯示 "This is the original"// 調(diào)用 Update,并輸出 obj.message。注重,它已經(jīng)被改變了。Update(obj);window.alert(obj.message); // 顯示 "I was changed"

檢驗數(shù)據(jù)

當(dāng)按值進(jìn)行檢驗時,是比較兩個截然不同的項以查看它們是否相等。通常,該比較是逐字節(jié)進(jìn)行的。當(dāng)按引用進(jìn)行檢驗時,是看這兩項是否是指向同一個原始項的指針。假如是,則比較結(jié)果是相等;假如不是,即使它們每個字節(jié)都包含完全一樣的值,比較結(jié)果也為不相等。

按引用復(fù)制和傳遞字符串能節(jié)約內(nèi)存;但是由于在字符串被創(chuàng)建后不能進(jìn)行更改,因此可以按值進(jìn)行比較。這樣可以檢查兩個字符串是否包含相同的內(nèi)容,即使它們是完全獨立產(chǎn)生的。



上一篇:遞歸

下一篇:Jscript 保留字

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 公安县| 穆棱市| 那坡县| 山丹县| 桃源县| 临武县| 南汇区| 阿城市| 遵化市| 集安市| 桦川县| 高淳县| 长汀县| 通辽市| 汶川县| 铁岭县| 尤溪县| 汝南县| 忻州市| 武清区| 壤塘县| 龙游县| 肇州县| 依安县| 安国市| 衡南县| 南宁市| 海兴县| 福鼎市| 龙泉市| 边坝县| 侯马市| 泗洪县| 五莲县| 磐石市| 启东市| 获嘉县| 赣榆县| 弥勒县| 岳普湖县| 赤水市|