溫馨提示×

溫馨提示×

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

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

javascript對象類型有哪些

發(fā)布時間:2021-11-25 09:38:59 來源:億速云 閱讀:499 作者:iii 欄目:web開發(fā)

這篇文章主要介紹“javascript對象類型有哪些”,在日常操作中,相信很多人在javascript對象類型有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”javascript對象類型有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

javascript的三種對象類型:1、內(nèi)部對象,包括需要實例化才能使用的本地對象和不需要實例化就能使用的內(nèi)置對象;2、宿主對象,就是執(zhí)行JS腳本的環(huán)境提供的對象;3、自定義對象,就是開發(fā)人員自己定義的對象。

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

javascript中的對象可以分為三大類,分別是內(nèi)部對象(本地對象和內(nèi)置對象)、宿主對象和自定義對象。

1、內(nèi)部對象

1)、本地對象,ECMAScript提供的需要實例化(new)才能使用的對象:

Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError

2)、內(nèi)置對象,ECMAScript提供的不需要實例化就能使用的對象:

只有Global (全局對象)和 Math

Math 對象屬性

屬性描述
E返回算術(shù)常量 e,即自然對數(shù)的底數(shù)(約等于2.718)。
LN2返回 2 的自然對數(shù)(約等于0.693)。
LN10返回 10 的自然對數(shù)(約等于2.302)。
LOG2E返回以 2 為底的 e 的對數(shù)(約等于 1.4426950408889634)。
LOG10E返回以 10 為底的 e 的對數(shù)(約等于0.434)。
PI返回圓周率(約等于3.14159)。
SQRT1_2返回 2 的平方根的倒數(shù)(約等于 0.707)。
SQRT2返回 2 的平方根(約等于 1.414)。

Math 對象方法

方法描述
abs(x)返回 x 的絕對值。
acos(x)返回 x 的反余弦值。
asin(x)返回 x 的反正弦值。
atan(x)以介于 -PI/2 與 PI/2 弧度之間的數(shù)值來返回 x 的反正切值。
atan2(y,x)返回從 x 軸到點 (x,y) 的角度(介于 -PI/2 與 PI/2 弧度之間)。
ceil(x)對數(shù)進行上舍入。
cos(x)返回數(shù)的余弦。
exp(x)返回 Ex 的指數(shù)。
floor(x)對 x 進行下舍入。
log(x)返回數(shù)的自然對數(shù)(底為e)。
max(x,y,z,...,n)返回 x,y,z,...,n 中的最高值。
min(x,y,z,...,n)返回 x,y,z,...,n中的最低值。
pow(x,y)返回 x 的 y 次冪。
random()返回 0 ~ 1 之間的隨機數(shù)。
round(x)四舍五入。
sin(x)返回數(shù)的正弦。
sqrt(x)返回數(shù)的平方根。
tan(x)返回角的正切。

JavaScript 全局屬性

屬性描述
Infinity代表正的無窮大的數(shù)值。
NaN指示某個值是不是數(shù)字值。
undefined指示未定義的值。

JavaScript 全局函數(shù)

函數(shù)描述
decodeURI()解碼某個編碼的 URI。
decodeURIComponent()解碼一個編碼的 URI 組件。
encodeURI()把字符串編碼為 URI。
encodeURIComponent()把字符串編碼為 URI 組件。
escape()對字符串進行編碼。
eval()計算 JavaScript 字符串,并把它作為腳本代碼來執(zhí)行。
isFinite()檢查某個值是否為有窮大的數(shù)。
isNaN()檢查某個值是否是數(shù)字。
Number()把對象的值轉(zhuǎn)換為數(shù)字。
parseFloat()解析一個字符串并返回一個浮點數(shù)。
parseInt()解析一個字符串并返回一個整數(shù)。
String()把對象的值轉(zhuǎn)換為字符串。
unescape()對由 escape() 編碼的字符串進行解碼。

2、宿主對象

宿主對象就是執(zhí)行JS腳本的環(huán)境提供的對象,是瀏覽器提供的對象。所有的BOM和DOM都是宿主對象。

3、自定義對象

開發(fā)人員自己定義的對象

⑴對象字面量方式(通過JSON來創(chuàng)建對象)

缺點:使用同一個接口創(chuàng)建很多對象,會產(chǎn)生大量的重復(fù)代碼。

⑵工廠模式。

①工廠模式就是將創(chuàng)建對象的語句放在一個函數(shù)里,通過傳入?yún)?shù)來創(chuàng)建特定對象,最后返回創(chuàng)建的對象。

函數(shù)createPerson()能夠根據(jù)接受到的參數(shù)來構(gòu)建一個包含所有必要信息的Person對象。

可以無數(shù)次的調(diào)用這個函數(shù),而每次它都會返回一個包含2個屬性和一個方法的對象。

②缺點:工廠模式雖然可以創(chuàng)建多個相似的對象,但卻不能解決對象標識的問題,即怎樣知道一個對象的類型。

⑶構(gòu)造函數(shù)模式

①缺點:使用構(gòu)造函數(shù)的主要問題是:每個方法都要在每個實例上創(chuàng)建一遍。

②在ECMAScript中,函數(shù)即對象,因此每定義一個函數(shù),也就是實例化了一個對象。

③也就是說通過構(gòu)造函數(shù)實例化的多個對象的方法,是多個不同的方法,但它們內(nèi)部的代碼以及實現(xiàn)的功能是相同的,這就造成了一定的資源浪費。

⑷原型模式

①js中,每個函數(shù)都有一個prototype屬性,它是一個指針,指向一個對象,叫做原型對象。

②使用原型模式可以讓所有的實例共享原型對象中的屬性和方法,也就是說,不必再構(gòu)造函數(shù)中定義對象實例的信息。

③缺點:省略了為構(gòu)造函數(shù)傳遞初始化參數(shù)這一環(huán)節(jié),結(jié)果所有實例在默認情況下都將取得相同的屬性值。

原型模式的最大問題是由共享的本性所導(dǎo)致的。原型中所有屬性是被很多實例共享的

這種共享對于函數(shù)非常合適。對于包含引用類型的屬性來說,問題就比較突出了。

④因此,很少單獨使用原型模式。

⑸組合使用構(gòu)造函數(shù)模式和原型模式

①組合使用構(gòu)造函數(shù)模式和原型模式,是創(chuàng)建自定義類型的最常見方式。

②構(gòu)造函數(shù)模式用于定義實例屬性,而原型模式用于定義方法和共享的屬性。

③結(jié)果,每個實例都會有自己的一份實例屬性的副本,但同時又共享著對方法的引用,最大限度的節(jié)省了內(nèi)存。

⑹其他模式

①動態(tài)原型模式:僅在第一次調(diào)用構(gòu)造函數(shù)時,將方法賦給原型對象的相應(yīng)屬性,其他示例的處理方式同構(gòu)造函數(shù)模式

②寄生構(gòu)造函數(shù)模式:僅僅封裝創(chuàng)建對象的代碼,然后再返回新創(chuàng)建的對象,仍使用new操作符調(diào)用

③穩(wěn)妥構(gòu)造函數(shù)模式:沒有公共屬性,只有私有變量和方法,以及一些get/set方法,用以處理私有變量。

到此,關(guān)于“javascript對象類型有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

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

AI