您好,登錄后才能下訂單哦!
這篇文章主要介紹“javascript對象類型有哪些”,在日常操作中,相信很多人在javascript對象類型有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”javascript對象類型有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
javascript的三種對象類型:1、內部對象,包括需要實例化才能使用的本地對象和不需要實例化就能使用的內置對象;2、宿主對象,就是執行JS腳本的環境提供的對象;3、自定義對象,就是開發人員自己定義的對象。
本教程操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
javascript中的對象可以分為三大類,分別是內部對象(本地對象和內置對象)、宿主對象和自定義對象。
1、內部對象
1)、本地對象,ECMAScript提供的需要實例化(new)才能使用的對象:
Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError
2)、內置對象,ECMAScript提供的不需要實例化就能使用的對象:
只有Global (全局對象)和 Math
Math 對象屬性
屬性 | 描述 |
---|---|
E | 返回算術常量 e,即自然對數的底數(約等于2.718)。 |
LN2 | 返回 2 的自然對數(約等于0.693)。 |
LN10 | 返回 10 的自然對數(約等于2.302)。 |
LOG2E | 返回以 2 為底的 e 的對數(約等于 1.4426950408889634)。 |
LOG10E | 返回以 10 為底的 e 的對數(約等于0.434)。 |
PI | 返回圓周率(約等于3.14159)。 |
SQRT1_2 | 返回 2 的平方根的倒數(約等于 0.707)。 |
SQRT2 | 返回 2 的平方根(約等于 1.414)。 |
Math 對象方法
方法 | 描述 |
---|---|
abs(x) | 返回 x 的絕對值。 |
acos(x) | 返回 x 的反余弦值。 |
asin(x) | 返回 x 的反正弦值。 |
atan(x) | 以介于 -PI/2 與 PI/2 弧度之間的數值來返回 x 的反正切值。 |
atan2(y,x) | 返回從 x 軸到點 (x,y) 的角度(介于 -PI/2 與 PI/2 弧度之間)。 |
ceil(x) | 對數進行上舍入。 |
cos(x) | 返回數的余弦。 |
exp(x) | 返回 Ex 的指數。 |
floor(x) | 對 x 進行下舍入。 |
log(x) | 返回數的自然對數(底為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 之間的隨機數。 |
round(x) | 四舍五入。 |
sin(x) | 返回數的正弦。 |
sqrt(x) | 返回數的平方根。 |
tan(x) | 返回角的正切。 |
JavaScript 全局屬性
屬性 | 描述 |
---|---|
Infinity | 代表正的無窮大的數值。 |
NaN | 指示某個值是不是數字值。 |
undefined | 指示未定義的值。 |
JavaScript 全局函數
函數 | 描述 |
---|---|
decodeURI() | 解碼某個編碼的 URI。 |
decodeURIComponent() | 解碼一個編碼的 URI 組件。 |
encodeURI() | 把字符串編碼為 URI。 |
encodeURIComponent() | 把字符串編碼為 URI 組件。 |
escape() | 對字符串進行編碼。 |
eval() | 計算 JavaScript 字符串,并把它作為腳本代碼來執行。 |
isFinite() | 檢查某個值是否為有窮大的數。 |
isNaN() | 檢查某個值是否是數字。 |
Number() | 把對象的值轉換為數字。 |
parseFloat() | 解析一個字符串并返回一個浮點數。 |
parseInt() | 解析一個字符串并返回一個整數。 |
String() | 把對象的值轉換為字符串。 |
unescape() | 對由 escape() 編碼的字符串進行解碼。 |
2、宿主對象
宿主對象就是執行JS腳本的環境提供的對象,是瀏覽器提供的對象。所有的BOM和DOM都是宿主對象。
3、自定義對象
開發人員自己定義的對象
⑴對象字面量方式(通過JSON來創建對象)
缺點:使用同一個接口創建很多對象,會產生大量的重復代碼。
⑵工廠模式。
①工廠模式就是將創建對象的語句放在一個函數里,通過傳入參數來創建特定對象,最后返回創建的對象。
函數createPerson()能夠根據接受到的參數來構建一個包含所有必要信息的Person對象。
可以無數次的調用這個函數,而每次它都會返回一個包含2個屬性和一個方法的對象。
②缺點:工廠模式雖然可以創建多個相似的對象,但卻不能解決對象標識的問題,即怎樣知道一個對象的類型。
⑶構造函數模式
①缺點:使用構造函數的主要問題是:每個方法都要在每個實例上創建一遍。
②在ECMAScript中,函數即對象,因此每定義一個函數,也就是實例化了一個對象。
③也就是說通過構造函數實例化的多個對象的方法,是多個不同的方法,但它們內部的代碼以及實現的功能是相同的,這就造成了一定的資源浪費。
⑷原型模式
①js中,每個函數都有一個prototype屬性,它是一個指針,指向一個對象,叫做原型對象。
②使用原型模式可以讓所有的實例共享原型對象中的屬性和方法,也就是說,不必再構造函數中定義對象實例的信息。
③缺點:省略了為構造函數傳遞初始化參數這一環節,結果所有實例在默認情況下都將取得相同的屬性值。
原型模式的最大問題是由共享的本性所導致的。原型中所有屬性是被很多實例共享的
這種共享對于函數非常合適。對于包含引用類型的屬性來說,問題就比較突出了。
④因此,很少單獨使用原型模式。
⑸組合使用構造函數模式和原型模式
①組合使用構造函數模式和原型模式,是創建自定義類型的最常見方式。
②構造函數模式用于定義實例屬性,而原型模式用于定義方法和共享的屬性。
③結果,每個實例都會有自己的一份實例屬性的副本,但同時又共享著對方法的引用,最大限度的節省了內存。
⑹其他模式
①動態原型模式:僅在第一次調用構造函數時,將方法賦給原型對象的相應屬性,其他示例的處理方式同構造函數模式
②寄生構造函數模式:僅僅封裝創建對象的代碼,然后再返回新創建的對象,仍使用new操作符調用
③穩妥構造函數模式:沒有公共屬性,只有私有變量和方法,以及一些get/set方法,用以處理私有變量。
到此,關于“javascript對象類型有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。