對象是JS中的引用數據類型
對象是一種複合數據類型,在對象中能夠保存多個不一樣數據類型的屬性
使用typeof檢查一個對象時,會返回object數組
對象的分類:瀏覽器
1.內建對象
- 由ES標準中定義的對象,在任何的ES的實現中均可以使用
- 好比:Math String Number Boolean Function Object….函數
2.宿主對象
- 由JS的運行環境提供的對象,目前來說主要指由瀏覽器提供的對象
- 好比 BOM DOM(瀏覽器對象模型、文檔對象模型)ui
3.自定義對象spa
- 由開發人員本身建立的對象code
方式一:對象
1 |
var obj = new Object(); |
方式二:ip
1 |
var obj = {}; |
向對象中添加屬性內存
語法:
對象.屬性名 = 屬性值;
對象["屬性名"] = 屬性值; //這種方式可以使用特殊的屬性名開發
對象的屬性名沒有任何要求,不須要遵照標識符的規範,可是在開發中,儘可能按照標識符的要求去寫。
屬性值也能夠任意的數據類型。
讀取對象中的屬性
語法:
對象.屬性名
對象[「屬性名」] //「屬性名」帶引號即爲在對象中尋找具備該屬性名的屬性,不帶引號是變量,尋找變量值爲該屬性名的屬性。
若是讀取一個對象中沒有的屬性,它不會報錯,而是返回一個undefined。
刪除對象中的屬性
語法:
1 |
delete 對象.屬性名 |
檢查屬性
使用in檢查對象中是否含有指定屬性
語法:"屬性名" in 對象
若是在對象中含有該屬性,則返回true
若是沒有則返回false
使用對象字面量,在建立對象時直接向對象中添加屬性
語法:
1 |
var obj = { |
(記住最後一個名值對不加逗號)
基本數據類型和引用數據類型內存中的區別
基本數據類型
String Number Boolean Null Undefined
引用數據類型
Object
基本數據類型的數據,變量是直接保存的它的值在棧內存中。
變量與變量之間是互相獨立的,修改一個變量不會影響其餘的變量。
引用數據類型的數據,變量是保存的對象的引用(內存地址)在棧內存中,而對象會在建立時在堆內存中開闢一段空間,將對象放入其中。
若是多個變量指向的是同一個對象,此時修改一個變量的屬性,會影響其餘的變量。
比較兩個變量時,對於基本數據類型,比較的就是值,
對於引用數據類型比較的是地址,地址相同才相同。
枚舉對象中的屬性(使用for...in語句)
1 |
var obj = {'0':'a','1':'b','2':'c'}; |
函數也是一個對象,函數對象,也具備普通對象的功能(能有屬性)。函數對象是一個有功能的對象。
函數中能夠封裝一些代碼,在須要的時候能夠去調用函數來執行這些代碼。
使用typeof檢查一個函數時會返回function。
建立函數
可使用構造函數去建立函數,可是這種方法通常不採用。
函數聲明
1 |
function 函數名([形參1,形參2...形參N]){ |
函數表達式
1 |
var 函數名 = function([形參1,形參2...形參N]){ |
函數表達式,實質上就是建立一個匿名函數,而後將其賦值給一個變量。
調用函數
語法:函數對象([實參1,實參2…實參N]);
fun() sum() alert() Number() parseInt()
當咱們調用函數時,函數中封裝的代碼會按照編寫的順序執行。
形參和實參
形參:形式參數
定義函數時,能夠在()中定義一個或多個形參,形參之間使用,隔開
定義形參就至關於在函數內聲明瞭對應的變量可是並不賦值,
形參會在調用時才賦值。
實參:實際參數
調用函數時,能夠在()傳遞實參,傳遞的實參會賦值給對應的形參,
調用函數時JS解析器不會檢查實參的類型(須要檢查是否符合類型)和個數(多餘不會被賦值,少的話未對應的形參值是undefined),能夠傳遞任意數據類型的值。
返回值 (函數執行的結果)
使用return 來設置函數的返回值。
語法:return 值;
該值就會成爲函數的返回值,能夠經過一個變量來接收返回值。
return後邊的代碼都不會執行,一旦執行到return語句時,函數將會馬上退出。
return後能夠跟任意類型的值,能夠是基本數據類型,也能夠是一個對象。
若是return後不跟值,或者是不寫return則函數默認返回undefined。
調用函數和函數對象
mianji() ,這是一個調用函數,至關於使用了返回值。
mianji,這是一個函數對象,至關於使用函數對象。
當即執行函數
函數定義完,當即被調用,這種函數叫作當即執行函數。
當即執行函數每每只會執行一次。
1 |
(function(a,b){ |
方法(method)
能夠將一個函數設置爲一個對象的屬性,
當一個對象的屬性是一個函數時,
咱們稱這個函數是該對象的方法。
對象.方法名();
回調函數
學識淺薄,若有錯誤,懇請斧正,在下不勝感激。