網(wǎng)頁制作中網(wǎng)站名稱怎么做谷歌查詢關(guān)鍵詞的工具叫什么
目錄
- 深入對象
- 構(gòu)造函數(shù)
- 實例成員
- 靜態(tài)成員
- 內(nèi)置構(gòu)造函數(shù)
- Object
- Array
- 包裝類型
- String
- Number
深入對象
了解面向?qū)ο蟮幕A(chǔ)概念,能夠利用構(gòu)造函數(shù)創(chuàng)建對象。
構(gòu)造函數(shù)
構(gòu)造函數(shù)是專門用于創(chuàng)建對象的函數(shù),如果一個函數(shù)使用 new 關(guān)鍵字調(diào)用,那么這個函數(shù)就是構(gòu)造函數(shù)。
總結(jié):
- 使用 new 關(guān)鍵字調(diào)用函數(shù)的行為被稱為實例化
- 實例化構(gòu)造函數(shù)時沒有參數(shù)時可以省略 ()
- 構(gòu)造函數(shù)的返回值即為新創(chuàng)建的對象
- 構(gòu)造函數(shù)內(nèi)部的 return 返回的值無效!
注:實踐中為了從視覺上區(qū)分構(gòu)造函數(shù)和普通函數(shù),習(xí)慣將構(gòu)造函數(shù)的首字母大寫。
實例成員
通過構(gòu)造函數(shù)創(chuàng)建的對象稱為實例對象,實例對象中的屬性和方法稱為實例成員。
總結(jié):
- 構(gòu)造函數(shù)內(nèi)部 this 實際上就是實例對象,為其動態(tài)添加的屬性和方法即為實例成員
- 為構(gòu)造函數(shù)傳入?yún)?shù),動態(tài)創(chuàng)建結(jié)構(gòu)相同但值不同的對象
注:構(gòu)造函數(shù)創(chuàng)建的實例對象彼此獨立互不影響。
靜態(tài)成員
在 JavaScript 中底層函數(shù)本質(zhì)上也是對象類型,因此允許直接為函數(shù)動態(tài)添加屬性或方法,構(gòu)造函數(shù)的屬性和方法被稱為靜態(tài)成員。
總結(jié):
- 靜態(tài)成員指的是添加到構(gòu)造函數(shù)本身的屬性和方法
- 一般公共特征的屬性或方法靜態(tài)成員設(shè)置為靜態(tài)成員
- 靜態(tài)成員方法中的 this 指向構(gòu)造函數(shù)本身
內(nèi)置構(gòu)造函數(shù)
掌握各引用類型和包裝類型對象屬性和方法的使用。
在 JavaScript 中最主要的數(shù)據(jù)類型有 6 種,分別是字符串、數(shù)值、布爾、undefined、null 和 對象,常見的對象類型數(shù)據(jù)包括數(shù)組和普通對象。其中字符串、數(shù)值、布爾、undefined、null 也被稱為簡單類型或基礎(chǔ)類型,對象也被稱為引用類型。
在 JavaScript 內(nèi)置了一些構(gòu)造函數(shù),絕大部的數(shù)據(jù)處理都是基于這些構(gòu)造函數(shù)實現(xiàn)的,JavaScript 基礎(chǔ)階段學(xué)習(xí)的 Date 就是內(nèi)置的構(gòu)造函數(shù)。
甚至字符串、數(shù)值、布爾、數(shù)組、普通對象也都有專門的構(gòu)造函數(shù),用于創(chuàng)建對應(yīng)類型的數(shù)據(jù)。
Object
Object 是內(nèi)置的構(gòu)造函數(shù),用于創(chuàng)建普通對象。
總結(jié):
- 推薦使用字面量方式聲明對象,而不是 Object 構(gòu)造函數(shù)
- Object.assign 靜態(tài)方法創(chuàng)建新的對象
- Object.keys 靜態(tài)方法獲取對象中所有屬性
- Object.values 表態(tài)方法獲取對象中所有屬性值
Array
Array 是內(nèi)置的構(gòu)造函數(shù),用于創(chuàng)建數(shù)組。
數(shù)組賦值后,無論修改哪個變量另一個對象的數(shù)據(jù)值也會相當(dāng)發(fā)生改變。
總結(jié):
- 推薦使用字面量方式聲明數(shù)組,而不是 Array 構(gòu)造函數(shù)
- 實例方法 forEach 用于遍歷數(shù)組,替代 for 循環(huán) (重點)
- 實例方法 filter 過濾數(shù)組單元值,生成新數(shù)組(重點)
- 實例方法 map 迭代原數(shù)組,生成新數(shù)組(重點)
- 實例方法 join 數(shù)組元素拼接為字符串,返回字符串(重點)
- 實例方法 find 查找元素, 返回符合測試條件的第一個數(shù)組元素值,如果沒有符合條件的則返回 undefined(重點)
- 實例方法every 檢測數(shù)組所有元素是否都符合指定條件,如果所有元素都通過檢測返回 true,否則返回 false(重點)
- 實例方法some 檢測數(shù)組中的元素是否滿足指定條件 如果數(shù)組中有元素滿足條件返回 true,否則返回 false
- 實例方法 concat 合并兩個數(shù)組,返回生成新數(shù)組
- 實例方法 sort 對原數(shù)組單元值排序
- 實例方法 splice 刪除或替換原數(shù)組單元
- 實例方法 reverse 反轉(zhuǎn)數(shù)組
- 實例方法 findIndex 查找元素的索引值
包裝類型
在 JavaScript 中的字符串、數(shù)值、布爾具有對象的使用特征。
之所以具有對象特征的原因是字符串、數(shù)值、布爾類型數(shù)據(jù)是 JavaScript 底層使用 Object 構(gòu)造函數(shù)“包裝”來的,被稱為包裝類型。
String
String 是內(nèi)置的構(gòu)造函數(shù),用于創(chuàng)建字符串。
總結(jié):
- 實例屬性 length 用來獲取字符串的度長(重點)
- 實例方法 split(‘分隔符’) 用來將字符串拆分成數(shù)組(重點)
- 實例方法 substring(需要截取的第一個字符的索引[,結(jié)束的索引號]) 用于字符串截取(重點)
- 實例方法 startsWith(檢測字符串[, 檢測位置索引號]) 檢測是否以某字符開頭(重點)
- 實例方法 includes(搜索的字符串[, 檢測位置索引號]) 判斷一個字符串是否包含在另一個字符串中,根據(jù)情況返回 true 或 false(重點)
- 實例方法 toUpperCase 用于將字母轉(zhuǎn)換成大寫
- 實例方法 toLowerCase 用于將就轉(zhuǎn)換成小寫
- 實例方法 indexOf 檢測是否包含某字符
- 實例方法 endsWith 檢測是否以某字符結(jié)尾
- 實例方法 replace 用于替換字符串,支持正則匹配
- 實例方法 match 用于查找字符串,支持正則匹配
注:String 也可以當(dāng)做普通函數(shù)使用,這時它的作用是強制轉(zhuǎn)換成字符串?dāng)?shù)據(jù)類型。
Number
Number 是內(nèi)置的構(gòu)造函數(shù),用于創(chuàng)建數(shù)值。
總結(jié):
- 推薦使用字面量方式聲明數(shù)值,而不是 Number 構(gòu)造函數(shù)
- 實例方法 toFixed 用于設(shè)置保留小數(shù)位的長度