您好,登錄后才能下訂單哦!
這篇文章主要介紹“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>
免責(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)容。