1. 程式人生 > >JavaScript學習筆記——物件、包裝類—day four

JavaScript學習筆記——物件、包裝類—day four

目錄

物件

屬性的增、刪、改、查

物件的建立方法

包裝類

基本資料型別

引用型別

區別

三個特殊的基本包裝型別

string的內部屬性和方法

Boolean沒有內建方法

Number內建方法 


物件

屬性的增、刪、改、查

   var missRuby={
            name:'Ruby',
            age:16,
            sex:'famale',
            charm:100,
            wear:function(){
                console.log('beautiful!');
                this.charm++;
            },
            smoke:function(){
                console.log('cool!');
                missRuby.charm++;
            }
        }
        // 增
        missRuby.heighe=165;
        // 刪
        delete missRuby.age;
        // 改
        missRuby.sex='male';
        // 查
        console.log(missRuby.charm);

這裡的this表示本身。

物件的建立方法

1、物件字面量,物件直接量

var obj = {}

2、建構函式

①  系統自帶 new Object();Array();Nummber();Boolean();String();Date();

var obj = new object();

obj.name='ruby'

②   自定義

       function person(color){
            this.color=color;
            this.name='miss';
            this.height=180;
        }
        var person1 = new person('red');
        var person2 = new person();

建構函式的函式名遵從大駝峰命名規則:所有單詞的首字母大寫。

建構函式內部原理

1、在函式體最前面隱式的加上 this={}

2、執行 this.xx=xxx;

3、隱式的返回this

有new之後執行.

包裝類

  參考文章1 參考文章2 

js中除了原始值外,其他都是物件,物件可以有自己的屬性和方法。(方法就是當屬性為函式的時候,我們稱之為方法)

那麼原始值有沒有自己的屬性呢;

var str = 'hello';

str.name = 'world'; 

/*

上面這一步str給他自己設定一個名為name,值為world的屬性,於是js就new String(str).name = 'world';

建立之後,銷燬

*/

console.log(str.name)

/*

這一步 js又new String(str).name 但是沒有值,

所以值為undefined,

*/

基本資料型別

按值訪問,可操作儲存在變數中的實際的值。基本型別值指的是簡單的資料段。

基本資料型別有這五種:Undefined、Null、String、Number、Boolean。

引用型別

當複製儲存著物件的某個變數時,操作的是物件的引用,但在為物件新增屬性時,操作的是實際的物件。引用型別值指那些可能為多個值構成的物件。

引用型別有這幾種:object、Array、RegExp、Date、Function、特殊的基本包裝型別(String、Number、Boolean)以及單體內建物件(Global、Math)。

區別:

引用型別值可新增屬性和方法,而基本型別值則不可以。

在複製變數值時,基本型別會在變數物件上建立一個新值,再複製給新變數。此後,兩個變數的任何操作都不會影響到對方;而引用型別是將儲存在變數物件的值複製一份給新變數,但是兩個變數的值都指向儲存在堆中的一個物件,也就是說,其實他們引用了同一個物件,改變其中一個變數就會影響到另一個變數。

三個特殊的基本包裝型別

為了便於操作“基本型別值”,JS 提供了 三個特殊的基本包裝型別(String、Number、Boolean)。

和其他引用型別相似,但同時 也具備與各自基本型別相應的特殊行為。

實際上:每當讀取一個基本型別值的時候, “後臺就會建立一個 對應的基本包裝型別的物件”,從能能夠呼叫一些方法來操作這些資料。

引用型別和基本包裝型別的主要區別就是物件的生存期; 自動建立的基本包裝型別的物件,則只存在於一行程式碼的執行瞬間,然後立即被銷燬; 這意味著我們不能在執行時為基本型別值新增屬性和方法;

string的內部屬性和方法

Boolean沒有內建方法

Number內建方法 

Number靜態屬性

 Number物件的方法

基本包裝型別的內部方法其實都是 prototype屬性和方法,也可以自己新增。