JavaScript的對象基礎
本篇主要講解本地對象Array和Date的各種方法。
一種面向對象語言需要向開發者提供四種基本能力:
(1) 封裝——把相關的信息(無論數據或方法)存儲在對象中的能力。
(2) 聚集——把一個對象存儲在另一個對象內的能力。
(3) 繼承——由另一個類(或多個類)得來類的屬性和方法的能力。
(4) 多態——編寫能以多種方法運行的函數或方法的能力。
1.本地對象包括:
①Array類
②Date類
2.內置對象
3.宿主對象
Array類
toString()方法和valueOf()方法,返回特殊的字符串。該字符串是通過對每項調用toString()方法,然後用逗號把它們連接在一起構成的。例如,對具有項"red"、"green"和"blue"的數組調用toString()方法或valueOf()方法,返回的是字符串"red,green,blue"。
join()方法唯一的用途就是連接字符串值。join()方法只有一個參數,即數組項之間使用的字符串。
split()方法將字符串轉換成數組,split()方法只有一個參數,就是被看作數組項之間的分隔符的字符串。如果把空字符串聲明為分隔符,那麼split()方法返回的數組中的每個項是字符串的字符。
concat()方法處理數組的方式幾乎與它處理字符串的方式完全一樣。參數將被附加在數組末尾,返回的函數值是新的Array對象(包括原始數組中的項和新的項)。
slice()方法接受一個或兩個參數,即要提取的項的起始位置和結束位置。如果只有一個參數,該方法將返回從該位置開始到數組結尾的所有項;如果有兩個參數,該方法將返回第一個位置和第二個位置間的所有項,不包括第二個位置處的項。
unshift()方法,它把一個項放在數組的第一個位置,然後把余下的項向下移動一個位置。
reverse()方法顛倒數組項的順序。
sort()方法將根據數組項的值按升序為它們排序。(注意:只是對字符串代碼的排序,數字數組的排序需要另解)
splice()方法最復雜的方法,把數據項插入數組的中部。
1.刪除——只需要聲明兩個參數,就可以從數組中刪除任意多個項,這兩個參數是要刪除的第一個項的位置和要刪除的項的個數。例如arr.splice(0,2)將刪除數組arr中的前兩項。
2.替換而不刪除——聲明三個參數就可以把數據項插入指定的位置,這三個參數是起始位置、0(要刪除的數組項的個數)和要插入的項。此外,還可以用第四個、第五個或更多個參數指定其他要插入的項。例如,arr.splice(2,0,"red", "green")將在位置2處插入"red"和"green"。
3.替換並刪除——聲明三個參數就可以把數據項插入指定的位置,這三個參數是起始位置、要刪除的數組項的個數以及要插入的項。此外,還可以指定要插入的更多的項。要插入的項的個數不必等於刪除的項的個數。例如,arr.splice(2,1, "red","green")將刪除數組arr中位置2處的項,然後在位置2處插入"red"和"green"。
棧和隊列的概念
區別一
棧:後進先出(LIFO)結構,先添加的項先刪除,棧中的插入和刪除都只發生在棧頂部。
隊列:先進先出(FIFO)結構,先添加的項最後刪除,元素的插入操作只發生在隊列的尾部,而刪除操作則發生在隊列的頭部。
區別二
棧:頂部添加項叫“推入棧”,刪除頂部項叫“彈出棧”。
隊列:隊尾添加項叫“put”或“入隊”,隊頭刪除項叫“get”或“出隊”。
在Array類中的運用
棧:push()方法用於在Array結尾添加一個或多個項,pop()方法用於刪除最後一個數組項(length-1),返回它作為函數值。
隊列:push()方法把數據項加入隊列(即在數組結尾添加數據項),shift()方法將刪除數組中的第一個項,將其作為函數值返回。
Date類
Date類的方法(列在下表中)均用於設置或獲取日期值的某部分。
方 法
說 明
toLocaleDateString()
以地點特定的格式顯示Date的時間部分
getTime()
返回日期的毫秒表示
setTime(milliseconds)
設置日期的毫秒表示
getFullYear()
返回用四位數字表示的日期的年份(如2004而不只是04)
getUTCFullYear()
返回用四位數字表示的UTC日期的年份
setFullYear(year)
設置日期的年份,參數必須是四位數字的年份值
setUTCFullYear(year)
設置UTC日期的年份,參數必須是四位數字的年份值
getMonth()
返回日期的月份值,由數字0(1月)到11(12月)表示
getUTCMonth()
返回UTC日期的月份值,由數字0(1月)到11(12月)表示
setMonth(month)
設置日期的月份為大於等於0的數字。對於大於11的數字,開始累計年數
setUTCMonth(month)
設置UTC日期的月份為大於等於0的數字。對於大於11的數字,開始累計年數
getDate()
返回該日期該月中的某天
getUTCDate()
返回該UTC日期該月中的某天
setDate(date)
設置該日期該月中的某天
setUTCDate(date)
設置該UTC日期該月中的某天
getDay()
返回該日期為星期幾
getUTCDay()
返回該UTC日期為星期幾
setDay(day)
設置該日期為星期幾
setUTCDay(day)
設置該UTC日期為星期幾
getHours()
返回日期中的小時值
getUTCHours()
返回UTC日期中的小時值
setHours(hours)
設置日期中的小時值
setUTCHours(hours)
設置UTC日期中的小時值
getMinutes()
返回日期中的分鐘值
getUTCMinutes()
返回UTC日期中的分鐘值
setMinutes(minutes)
設置日期中的分鐘值
setUTCMinutes(minutes)
設置UTC日期中的分鐘值
getSeconds()
返回日期中的秒值
getUTCSeconds ()
返回UTC日期中的秒值
setSeconds (seconds)
設置日期中的秒值
setUTCSeconds (seconds)
設置UTC日期中的秒值
getMilliseconds()
返回日期中的毫秒值。注意,這不是自1970年1月1日以後的毫秒值,而是當前時間中的毫秒值,例如4 :55 :34.20,其中20即為時間的毫秒值
getUTCMilliseconds ()
返回UTC日期中的毫秒值
setMilliseconds (milliseconds)
設置日期中的毫秒值
setUTCMilliseconds (milliseconds)
設置UTC日期中的毫秒值