无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(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中的不可變原始值和可變對象引用的評論 (共 條)

分享到微博請遵守國家法律
永德县| 寿阳县| 同德县| 临江市| 天镇县| 遵化市| 嘉峪关市| 遂溪县| 治县。| 天长市| 公主岭市| 马边| 济源市| 尚义县| 宾川县| 莱州市| 清河县| 凯里市| 五莲县| 甘孜| 平顶山市| 灌阳县| 翼城县| 泸定县| 修武县| 永宁县| 富裕县| 上思县| 金秀| 东台市| 彝良县| 牙克石市| 新宁县| 阿勒泰市| 阿拉善左旗| 平舆县| 太仓市| 博爱县| 乾安县| 桓台县| 平舆县|