淺談JavaScript面向對象與基礎類型

每日總結

1.JavaScript面向對象

2.七大數據類型類型

1.JavaScript面向對象的理解

JavaScript面向對象和其他基於類的面嚮對象語言相比他是基於原型的,面向對象其實就是一種接近人類思維的一種概念,舉個例子,先有一個蘋果(對象),我們知道這個蘋果能喫,之後才知道所有蘋果都能喫(類)。說起面向對象大家都會想到封裝繼承多態,這裏我要強調的是他們的不同點,JavaScript是一門弱類型語言,在很多地方並不嚴謹但是自由度也更高,他的對象是可以在運行中被修改的。

var o = {a:1};
    o.b = 2;
    console.log(o.a + o.b);//輸出爲3

在一般基於類的編程語言中這種是不能理解的,但是迴歸本質來講這種往往也是一種合理的面向對象方式。要知道所謂的對象:

1.是一個可以觸摸或者可以看見的東西;

2.人的智力可以理解的東西;

3.可以知道思考或行動(進行想象或者施加動作)的東西;

這裏再說一下數據的屬性的四個特徵

value:屬性的值。

writable:決定屬性能否被賦值。

enumerable:決定for in 能否枚舉該屬性。

configurable:決定該屬性能否被刪除或者改變特徵值。

如果我們想要去改變屬性的特徵我們可以使用object.defineProperty:

 var o = {a:1};
    //使用defineProperty方式給對象添加屬性
    Object.defineProperty(o,'b',{value:2,writable:false,enumerable:false,configurable:true});
    //查看屬性
    console.log(Object.getOwnPropertyDescriptors(o,'a'))
    Object.getOwnPropertyDescriptors(o,'b');
    o.b = 3;
    console.log(o.b);//輸出爲2

每次訪問屬性都會執行getter和setter函數。

   var obj = {get a(){return 1}}
    console.log(obj.a)

2.JavaScript七大數據類型

2.1 Undefined;

表示未定義,在JavaScript當中屬於一個變量而非關鍵字,爲了避免被篡改建議用void 0 替代他。

2.2 Null;

代表已經聲明瞭但是爲空。

2.3 Boolean;

布爾類型,只有真(true)和假(false)兩個值。

2.4 String;

字符串的最大長度爲2^52-1,字符串一旦被構造出來就無法變更,所以字符串具有值類型的特徵。

2.5 Number;

數字類型,其中包含單精度小數與雙精度小數,比如0.1+0.2 != 0.3 這就涉及到精度問題,所以儘量避免使用小數判斷防止出錯,number也是有最大長度限制的,比如正無窮與負無窮。

2.6 Symbol;

ES6的新類型,之後再詳細介紹

2.7 Object;

對象類型,剛剛講過了對象定義了屬性的集合,屬於key-value結構

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章