国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

JavaScript中的不可變原始值和可變對象引用

2023-08-27 08:00 作者:曉楓Motivation  | 我要投稿

在JavaScript中,原始值(undefined、null、布爾值、數(shù)字和字符串)與對象(包括數(shù)組和函數(shù))之間存在著根本的區(qū)別。原始值是不可變的,意味著它們的值無法改變。這對于數(shù)字和布爾值很容易理解:修改它們的值是沒有意義的。然而,對于字符串來說,這可能會(huì)稍微不太直觀。由于字符串類似于字符數(shù)組,可能會(huì)認(rèn)為在特定索引處修改字符是可能的。然而,JavaScript不允許這樣做。所有看似修改字符串的方法實(shí)際上都返回一個(gè)新的字符串。例如:

原始值通過其值進(jìn)行比較,意味著只有當(dāng)兩個(gè)值的值相同時(shí),它們才被認(rèn)為是相等的。這在處理數(shù)字、布爾值、null和undefined時(shí)可能聽起來令人困惑。但實(shí)際上很簡單:例如,當(dāng)比較兩個(gè)不同的字符串時(shí),只有當(dāng)它們具有相同的長度且在相同索引處的每個(gè)字符都相同時(shí),JavaScript才認(rèn)為它們是相等的。

(程序員的軟技能:ke.qq.com/course/6034346)

另一方面,對象是可變的;它們的值可以改變:

對象不是通過值進(jìn)行比較的;即使兩個(gè)具有相同屬性和值的不同對象,也不被認(rèn)為是相等的。類似地,具有相同元素且順序相同的兩個(gè)不同數(shù)組也不相等:

對象有時(shí)被稱為引用類型,與JavaScript的原始類型相對。根據(jù)這種術(shù)語,對象值是引用,對象通過引用進(jìn)行比較。換句話說,只有當(dāng)兩個(gè)對象值引用相同的底層對象時(shí),它們才相等。

從上面的代碼可以看出,將對象(或數(shù)組)賦值給一個(gè)變量實(shí)際上是賦值引用,而不是對象的新副本。如果要?jiǎng)?chuàng)建對象或數(shù)組的新副本,必須顯式地復(fù)制其屬性或元素。下面的示例演示了如何使用for循環(huán)來實(shí)現(xiàn)這個(gè)過程:

如果要比較兩個(gè)不同的對象或數(shù)組,必須比較它們的屬性或元素。下面的代碼定義了一個(gè)函數(shù),用于比較兩個(gè)數(shù)組:

(程序員的軟技能:ke.qq.com/course/6034346)



JavaScript中的不可變原始值和可變對象引用的評論 (共 條)

分享到微博請遵守國家法律
聂荣县| 改则县| 舞阳县| 尤溪县| 仁怀市| 定州市| 南京市| 汉沽区| 齐河县| 濮阳市| 鹰潭市| 罗城| 纳雍县| 凤庆县| 江达县| 信丰县| 天柱县| 永清县| 沙河市| 嘉峪关市| 张家港市| 连南| 长子县| 泽州县| 徐州市| 明星| 思茅市| 颍上县| 武平县| 屏南县| 南宫市| 景宁| 清远市| 河东区| 淮南市| 交口县| 海南省| 旺苍县| 武穴市| 肇东市| 古田县|