引用型別:物件的定義,描述的是一類物件所具有的屬性和方法;
物件是某個特定引用型別的例項;
下面介紹下ecmascript提供的原生引用型別object
object型別
建立object例項的方法有兩種
物件的屬性名會自動轉換為字串;
在函式內部,可以使用typeof 操作符來檢測每個屬性是否存在;
函式傳參技巧:對於必須值使用命名引數,使用物件字面量來封裝多個可選引數
訪問物件屬性:person["name"] or person.name
使用方括號時,要將訪問的屬性以字串或者變數的形式放入方括號中
array型別
陣列:每一項都能儲存任何型別的資料,大小可以動態調整;
建立陣列的方法:
使用建構函式建立時,可以向建構函式傳遞陣列中的包含項、陣列的長度(數字);包含項有多個,用逗號隔開;如果傳遞了乙個值,數字的話就是指定的長度,其他型別的引數則建立包含那個值的數值
讀取和設定陣列的值:使用方括號並提供索引,從0開始
如果將陣列的length設定為大於項數的值,則新增的每一項都會取得undefined;
利用length屬性可以方便的在陣列末尾新增新項var co = [1,2,3,3];co[co.length]=4;co[co.length]=5;
檢測陣列
array.isarray()方法(ie9及以上),確定某個值到底是不是陣列,而不管他是在哪個全域性執行環境中建立的;instanceof對於單一的全域性執行環境沒問題,但是如果有多個全域性執行環境,就會存在兩個版本的array建構函式。
轉換方法
tostring():返回由陣列中每個值的字串形式拼接而成的乙個以逗號分隔的字串
valueof():返回的還是陣列,
tolocalestring():陣列中每一項呼叫toloaclestring,然後逗號拼接上,
預設情況下會以逗號分隔字串的形式返回陣列項,如果使用join()方法,則可以指定分隔符構建字串(只有乙個引數,分隔符的字串,不傳的話預設逗號分隔符)。若陣列中的某一項為null或undefined,會返回空字串
棧方法(後進先出方法)
push():可以接收任意數量引數,然後將其逐個新增到陣列末尾,並返回修改後的數值長度;pop()方法從陣列末尾移除最後一項,減少陣列長度,並返回移除項
佇列方法(先進先出)
shift()移除陣列的第一項並返回該項,將陣列長度減一;unshift()在陣列前端新增任意個項,並返回新陣列長度;
重排序方法
reverse():反轉陣列項的順序;但是不夠靈活;如果只是想反轉陣列原來的順序,使用這個較快;
sort():預設情況下按公升序排列陣列項(呼叫每個陣列項的tostring方法,得到字串,然後確定如何排序,缺省會造成數字5在10的後面,因為比較的是字串);
sort 方法可以接收乙個比較函式作為引數,比較函式接收兩個引數,返回結果為正負零;
操作方法(數值)
concat()方法:不會改變原陣列,會返回乙個新構建的陣列;
slice()方法,基於當前數值的乙個或多個項建立乙個新陣列,可以接收一或兩個引數(項的起始和結束位置),只有乙個的話結束位置為陣列末尾,兩個的話返回起始和結束位置的項,但不包括結束位置的項,不會影響原來的數值;如果有負數,則用陣列長度加上該數確定相應位置,如果結束小於初始,則返回空陣列
splice()方法,向陣列中部插入項,
位置方法
indexof()、lastindexof()方法,接收兩個引數:要查詢的項與(可選的)查詢的起始位置;
indexof(從0向後查詢);
lastindexof(從數值末尾開始向前查詢)
返回查詢的項在陣列中的位置,沒有的情況下返回-1;在比較是否相等是用的全等操作符(兩個物件,即使欄位名、值都一樣,全等時也不相等)
迭代方法
5個迭代方法。每個方法都接收兩個引數:要在每一項上執行的函式和(可選的)執行該函式的作用域物件——影響this的值;傳入這些方法的函式會接收三個引數:陣列項的值,該項在陣列中的位置和陣列物件本身。
縮小方法
reduce()、reduceright(),這兩個方法都會迭代數值的所有項,然後構建乙個最終返回的值
reduce 從第一項開始,逐個遍歷到最後
reduceright 從最後一項開始,向前遍歷
接收引數為:乙個每項呼叫的函式和(可選的)作為縮小基礎的初始值
傳給reduce和reduceright 的函式接收4個引數:前乙個值、當前值、項的索引和陣列物件。這個函式返回的任何值都會作為第乙個引數自動傳給下一項
date型別
建立date物件:建構函式 new date()
可以根據特定的日期和時間建立日期物件,必須傳入該日期的毫秒數,可以通過date.parse()和date.utc(),日期物件在不同瀏覽器中表現不同,如果1 32,2007
有的會解析成2 1,2007
,但是有的會解析成當前時間
第五章學習總結
1.子類與父類 利用繼承,可以先定義乙個共有屬性的一般類。根據該一般類再定義具有特殊屬性的子類,子類繼承一般類的屬性和行為,並根據需要增加它自己新的屬性和行為。子類 extends 父類 2.object是所有類的祖先類。每個類有且僅有乙個父類。3.子類自然地繼承父類中不是private的成員變數和...
《JS高程3》第五章Array型別記錄
5.2.1 檢測陣列 array.isarray 方法 if array.isarray value 5.22 轉換方法 tolocalestring tostring valueof 方法。join 方法可以使用不同分隔符。5.2.3 棧方法 資料訪問規則lifo last in first on...
第五章總結
5.1選單 選單是windows應用程式視窗的乙個非常重要的組成部分,視窗的選單欄一般在標題欄下面。這個選單通常稱為 主選單 5.1.1建立和程式設計選單 選單用於sdi 單文件介面 或mdi 多文件介面 以及基於對話方塊的應用程式,在基於對話方塊的應用程式中新建 設計並編輯選單後,在該對話方塊的 ...