溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

javascript中有哪些對(duì)象新增方法

發(fā)布時(shí)間:2022-01-13 09:44:12 來(lái)源:億速云 閱讀:126 作者:小新 欄目:web開發(fā)

這篇文章將為大家詳細(xì)講解有關(guān)javascript中有哪些對(duì)象新增方法,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

javascript對(duì)象的新增方法:1、“Object.is()”,可用于比較兩個(gè)值是否嚴(yán)格相等;2、“Object.assign()”,可用于對(duì)象的合并,將源對(duì)象的所有可枚舉的屬性復(fù)制到目標(biāo)對(duì)象。

本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。

javascript對(duì)象的新增方法

1、Object.is()

es6中,要比較兩個(gè)值是否嚴(yán)格相等,我們有三種方法,使用相等運(yùn)算符‘==’、嚴(yán)格相等運(yùn)算符‘===’或者Object.is()方法,但是前兩種方法都有缺陷,在一些特殊場(chǎng)景下不能使用,Object.is()則不會(huì)。

javascript中有哪些對(duì)象新增方法

Object.is()與‘===’運(yùn)算符的行為基本一致,

javascript中有哪些對(duì)象新增方法

但有兩點(diǎn)不一樣:

(1)+0 不等于 -0

javascript中有哪些對(duì)象新增方法

(2)NaN等于本身

javascript中有哪些對(duì)象新增方法

2、Object.assign()

(1)Object.assign()用于對(duì)象的合并,將源對(duì)象的所有可枚舉的屬性復(fù)制到目標(biāo)對(duì)象

javascript中有哪些對(duì)象新增方法

javascript中有哪些對(duì)象新增方法

(2)Object.assign()方法的第一個(gè)參數(shù)是目標(biāo)對(duì)象,后面的參數(shù)都是源對(duì)象。

如果目標(biāo)對(duì)象與源對(duì)象有同名屬性,或多個(gè)源對(duì)象有同名屬性,則后面的屬性會(huì)覆蓋前面的屬性。

javascript中有哪些對(duì)象新增方法

javascript中有哪些對(duì)象新增方法

可以看到two中的b: 2覆蓋了one中的b: 1,three中的c: 3覆蓋了two中的c: 2

(3)如果只有一個(gè)參數(shù),Object.assign()會(huì)直接返回該參數(shù)

javascript中有哪些對(duì)象新增方法

javascript中有哪些對(duì)象新增方法

(4) 如果該參數(shù)不是對(duì)象,則會(huì)先轉(zhuǎn)換成對(duì)象,然后返回。

javascript中有哪些對(duì)象新增方法

可以看到Object.assign()將數(shù)值5轉(zhuǎn)換成了一個(gè)Number對(duì)象后返回了

(5)undefined和null無(wú)法轉(zhuǎn)化成對(duì)象,如果用他們作為參數(shù)則會(huì)報(bào)錯(cuò)

javascript中有哪些對(duì)象新增方法

如果非對(duì)象參數(shù)出現(xiàn)在源對(duì)象的位置(即不是第一個(gè)參數(shù)),處理規(guī)則會(huì)有所不同。這些參數(shù)都會(huì)轉(zhuǎn)換成對(duì)象,如果無(wú)法轉(zhuǎn)換成對(duì)象則會(huì)跳過(guò)。這意味著undefined和null不是第一個(gè)參數(shù)就不會(huì)報(bào)錯(cuò),演示如下

javascript中有哪些對(duì)象新增方法

javascript中有哪些對(duì)象新增方法

其他類型的值(即數(shù)值、字符串和布爾值)不在首參數(shù)(即第一個(gè)參數(shù)),也不會(huì)報(bào)錯(cuò)。但是,除了字符串會(huì)以數(shù)組形式拷貝入目標(biāo)對(duì)象,其他值都不會(huì)產(chǎn)生效果。

javascript中有哪些對(duì)象新增方法

javascript中有哪些對(duì)象新增方法

上面代碼中,v1 v2 v3分別是字符串、布爾值和數(shù)值,結(jié)果只有字符串合入目標(biāo)對(duì)象(以字符數(shù)組的形式),數(shù)值和布爾值都會(huì)被忽略。這是因?yàn)橹挥凶址陌b對(duì)象,會(huì)產(chǎn)生可枚舉屬性。

(6)把布爾值、數(shù)值、字符串分別轉(zhuǎn)成對(duì)應(yīng)的包裝對(duì)象,可以看到它們的原始值都在包裝對(duì)象的內(nèi)部屬性[[PrimitiveValue]]上面,這個(gè)屬性是不會(huì)被Object.assign()拷貝的。只有字符串的包裝對(duì)象,會(huì)產(chǎn)生可枚舉的實(shí)義屬性,那些屬性則會(huì)被拷貝。

javascript中有哪些對(duì)象新增方法

javascript中有哪些對(duì)象新增方法

javascript中有哪些對(duì)象新增方法

Object.assign()拷貝的屬性是有限制的,只拷貝源對(duì)象自身的屬性(不拷貝繼承過(guò)來(lái)的屬性),

也不拷貝不可枚舉的屬性(enumerable: false)。

關(guān)于“javascript中有哪些對(duì)象新增方法”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI