JavaScript學習筆記——物件、包裝類—day four
目錄
物件
屬性的增、刪、改、查
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之後執行.
包裝類
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屬性和方法,也可以自己新增。