JavaScript是一種原型式(prototype-style)的OO語言
沒有類的概念,所有的一切都派生自現有對象的一個副本
JavaScript資料類型:
1、簡單類型:數字,字元串,布爾值,null值,undefined值
數字,字元串,布爾值“貌似”對象,因為它們擁有方法,但它們是不可變的
2、其它都是對象:可變的鍵控集合。包括數組,函數,正規表達式等
對象:
對象是屬性的容器,其中每個屬性都擁有名字和值。
屬性的名字:可以是包括空字元串在内的任意字元串
屬性的值:除undefined值之外的任何值
對象是無類别的(class-free),對新屬性和的名字和值沒有限制。
對象合适收集管理資料
JavaScript的2種對象類型:
1、Function對象
兩個子類别:
1)Function執行個體,如alert(),可以使用參數來調用
2)作為構造函數的Function,必須通過new操作符進行執行個體化
2、Object對象
繼承:
JavaScript包括一個原型鍊特征,允許對象繼承另一對象的屬性,繼承是通過從一個對象原型向另一個對象原型複制方法而實作
一、對象字面量,{}部分是對象字面量
var flight={
airline:"jsadf";
number:815;
arrival:{
time:"2011-1-17";
city:"Los Angeles";
}
};
二、檢索
var status = flight.status || "Unknown" ; // 用 || 運算符充當預設值
用&&運算符來避免 嘗試檢索一個undefined值的屬性 導緻的TypeError異常
flight.equipment && flight.equipment.model //flight.equipment可能為undefined
三、更新
對象中的值可以通過指派來更新
四、引用
對象通過引用傳遞,永遠不會被拷貝
五、原型
每個對象都連接配接到一個原型對象,并且它可以從中繼承屬性
是以通過字面量建立的對象都連接配接到Object.prototype這個JavaScript中的标準的對象
原型關系是一種動态的關系,如果我們添加一個新的屬性到原型中,該屬性會立即對所有基于該原型建立的對象可見。 !
六、反射
typeof操作符對确定屬性的類型很有幫助
hasOwnProperty方法驗證對象是否擁有獨有的屬性
七、枚舉
for in 語句可以周遊一個對象中的是以屬性
八、删除
delete操作符删除對象的屬性
九、減少全局變量污染
JavaScript的内置對象:
1、Object:通用基礎對象,用來建立簡單的靜态對象
2、Function:是被所有使用參數的對象複制的對象,也是在腳本中定義函數時所建立的對象
3、Array:一種特殊的屬性和方法的集合
4、String,Boolean,Number:字元串,布爾值,數字
5、Math,Date,RegExp以及其它内置對象
所有内置對象都可以通過new關鍵字或者其他特殊的文法建立
{}花括号:是Object的簡寫
[ ] 中括号:是Array的簡寫