讓前端開發者最熟悉又最陌生的就是js的面向對象編程了吧,不少人對面向對象編程一臉茫然,並自嘲只會面向過程編程,面向測試編程,面向業務編程。其實面向對象在平時開發中無處不在,由於JavaScript的全部數據均可以當作對象,可是咱們沒有這種面向對象開發的思想,雖然也許並不影響搬磚。前端
計算機語言可大體分三類編程
①、面向機器:彙編語言。
②、面向過程:C語言
③、面向對象:Java、C++、PHP等。
複製代碼
區別函數
面向對象的三大特徵:繼承、封裝、多態測試
1️⃣類:一類具備相同特徵(屬性)和行爲(方法)的集合;spa
人類: 屬性:身高、姓名、體重 方法:吃、喝、拉、撒code
2️⃣對象:從類中拿出具備肯定屬性值和方法的個體叫作對象: 好比對象
張三:身高:180cm 體重:70kg 方法:說話:我叫張三繼承
3️⃣關係ip
類是抽象的,對象是具體的;對象是類的實例開發
js一共有六種類型:string、boolean、number、null 和 undefined
注意,簡單基本類型(string、boolean、number、null 和 undefined)自己並非對象。null有時會被看成一種對象類型,可是這其實只是語言自己的一個 bug,即對 null 執行 typeof null 時會返回字符串 "object"。1 實際上,null 自己是基本類型。
原理是這樣的,不一樣的對象在底層都表示爲二進制,在 JavaScript 中二進制前三位都爲 0 的話會被判 斷爲 object類型,null的二進制表示是全 0,天然前三位也是 0,因此執行 typeof 時會返回「object」
String、Number、Object、Function 、 Array、Date、RegExp、Error
這些內置對象從表現形式來講很像其餘語言中的類型(type)或者類(class),好比 Java 中的 String 類。 可是在 JavaScript 中,它們實際上只是一些內置函數。