JS引用類型總結

Object 類型
建立Object實例的方式:正則表達式

  • var person = new Object();
  • var person = { name : 'Mike', age : 23 } //屬性名可使用字符串如 'age': 23

Array 類型
建立數組的基本方式:express

使用Array構造函數 (new可省略)數組

  • var ar = new Array()
  • var ar = new Array(3) //給定長度爲3
  • var ar = new Array('red', 'yellow', 'green')

數組字面量表示法瀏覽器

  • var ar = ['red', 'yellow', 'green']
  • var ar = []
  • var ar = [ , , , , ] //錯誤示範,會建立一個包含4或5項的數組,每一項是undefined

length屬性:函數

length屬性不僅是可讀的,經過設置length屬性能夠從數組的末尾移除項或向數組中添加新項,數組最多可包含4294967295個項。
檢測數組:this

  • value instanceof Array //假設只有一個全局環境
  • Array.isArray(value) //低版本瀏覽器還沒有實現該方法
  • Object.prototype.toString.call(array) == '[object Array]'

轉換方法:spa

  • ar.toString() //返回每一項調用toString方法獲得的字符串而後逗號拼接
  • ar.toLocaleString() //返回返回每一項調用toLocaleString方法獲得的字符串而後逗號拼接,在數組中包含類型爲對象的項時差別較明顯
  • ar.valueOf() //返回該數組
  • ar.join('&') //區分toString方法,逗號替換爲&,分隔符可指定,當數組中某一項爲null或者undefined時,轉換字符串時用空字符表示

棧方法和隊列方法prototype

  • push() //接收任意數量的參數,並逐個添加到數組末尾,返回數組長度
  • pop() //從數組中移除最後一項,返回移除的項
  • shift() //移除數組中第一項,返回移除的項
  • unshift() //接收任意數量的參數,並添加到數組開頭,返回數組長度

重排序方法設計

  • ar.reverse() //數組順序反轉,在原數組上進行修改
  • ar.sort() //根據字符串比較來排序而非數值大小,在原數組上進行修改
  • sort()接受一個比較函數,若是第一個參數應該位於第二個參數以前則返回一個負數

操做方法regexp

  • concat() //傳入數組或單個項,該方法會建立一個原數組副本並將這些數組的每個和單個項都添加到結果數組中
  • slice() //可傳入兩個參數m、n,表示取數組的第m項到第n項,原數組不改變,m、n爲負時,加上數組長度便可
  • splice(m,n,value) //從第m個項開始刪除n個項,並從第m項開始插入變量value,返回一個數組包含刪除的項,原數組改變

位置方法

  • indexOf() //接收兩個參數,要查找的項和查找起點位置索引,查找時用===匹配
  • lastIndexOf //用法同上,逆序查找

迭代方法

5種迭代方法,每一個方法接收兩個參數:要在每一項上運行的函數和(可選的)運行該函數的做用域對象----影響this值,第一個參數函數接受三個參數:數組項的值、索引、數組對象自己,這5種方法都不會修改數組中包含的值。

  • every() //對數組中每一項運行給定函數,若是該函數對每一項都返回true則返回true
  • some() //對數組中每一項運行給定函數,若是該函數對任一項返回true則返回true
  • filter() // 對數組中每一項運行給定函數,返回該函數會返回true的項組成的數組
  • forEach() //對數組中每一項運行給定函數,這個方法沒有返回值
  • map() //對數組中每一項運行給定函數,返回每次函數調用的結果組成的數組

歸併方法

  • reduce() //接收兩個參數,一個在每一項上調用的函數和(可選的)做爲歸併基礎的初始值,第一個參數函數接收4個參數,前一個值、當前值、項的索引、數組對象,此方法一般用於求數組中全部值之和
  • reduceRight() //遍歷方向同reduce相反

Date類型
建立日期對象

  • var now = new Date() //傳入參數爲1970-1-1距離指定日期的毫秒數
  • parse() //此方法能夠把表示日期的參數字符串'2017-(或/)3-28'或'3-28-2017'距離1970-1-1的毫秒數
  • UTC() //此方法能夠把表示日期的參數(2017,2,28)轉化爲毫秒數
  • Date構造函數會模仿以上兩個函數,若是直接將他們的參數傳給Date構造函數,也會在後臺調用相應的方法parse和UTC。
  • Date.now() //返回調用這個方法的日期和時間的毫秒數

方法

  • toString() toLocaleString() valueOf() //前兩個返回字符串,最後一個返回毫秒數
  • toDateString() //顯示星期幾、月、日、年
  • toTimeString() //顯示時、分、秒、時區,同時也有toLocaleDateString()和toLocaleTimeString()方法,區別在於表示格式不一樣
  • toUTCString() //顯示格式完整的UTC日期,toGMTString()與該方法等價,目的在於確保向後兼容
  • getTime()、setTime()、getSections()、setSections()......//日期對象的讀寫

RegExp類型
建立正則表達式

var expression = /\[bc\]at/i //字面量形式
var expression =new RegExp('\\\[bc\\\]at','i') //全部元字符必須雙重轉義,\須要變成\\\\\\\\

每一個正則表達式能夠帶有一個或多個標誌(flags):

  • g :全局模式,即模式會被應用於全部字符串,而非在發現第一個匹配項時當即中止。
  • i :不區分大小寫模式,即匹配時忽略大小寫。
  • m:多行模式,即在到達一行文本末尾時還會繼續查找下一行中是否有與模式匹配的項。

RegExp實例屬性

  • global:布爾值,表示是否設置了 g 標誌
  • ignoreCase:布爾值,表示是否設置了 i 標誌
  • multiline:布爾值,表示是否設置了 m 標誌
  • lastIndex:整數,表示開始搜索下一個匹配項的字符位置,從0算起,該值在每次調用匹配方法時都會用到
  • source:正則表達式的字符串表示,按照字面量形式返回

元字符

  • ^ 匹配開頭 /[^\,]+/表示不包含任何逗號的模式 $ 匹配結尾 . 表示任意字符
  • \s 匹配空格 \d 匹配數字 \b 匹配單詞邊界,前導字符在前,單詞在後
  • * 匹配0個或多個前導字符 + 前導字符至少出現一次 ? 前導字符出現0次或1次
  • {m,n} 表示至少出現m次,最多出現n次 [0-9a-z] 定義匹配的字符串範圍

RegExp實例方法

  • exec()· 專門爲捕獲組而設計,接受一個要應用模式的字符串爲參數,返回包含第一個匹配項信息(首次匹配到的項)的數組,在沒有匹配項(沒有整個模式的匹配項)時返回null。
  • · 數組第1項是與整個模式匹配的字符串,其它項是與模式中捕獲組匹配的字符串,數組還包含兩個額外屬性 input 和 index ,分別爲輸入的字符串和整個模式匹配項在字符串中位置
  • · 當模式設置了 g 標誌,RegExp實例(模式)每執行一次 exec() 方法,他的的 lastIndex 屬性就會改變一次;若沒有設置 g ,則 lastIndex 恆等於0
  • test() · 接受一個字符串參數,模式匹配返回 true,不然 false
  • toString()、toLocaleString()、valueOf()· 都會像它是字面量形式建立的同樣顯示其字符串表示。

RegExp構造函數屬性

長屬性名 短屬性名 說明
input $_ 最近一次要匹配的字符串
lastMatch $& 最近一次的匹配項
lastParen $+ 最近一次匹配的捕獲組
leftContext $ ` input 字符串中 lastMatch 以前的字符串
rightContext $' input 字符串中 lastMatch 以後的字符串
multiline $* 布爾值,表示是否全部表達式都使用多行模式
  $1 / $2 / $3 ··· 表示一個模式中第n個匹配的捕獲組,在調用exec、test方法時會被自動填充

 

 

 

 

 

 

 

String類型的match()方法(接受一個Regexp實例或者字符串做爲參數)

  • regexp 沒有 g 標誌

  · match() 方法就只在 stringObject 中執行一次匹配,返回一個數組,其中存放了與它找到的匹配文本有關的信息。該數組的第 0 個元素存放的是匹配文本,而其他的元素存放的是與正則表達式的子表達式匹配的文本,除了這些常規的數組元素以外,返回的數組還含有兩個對象屬性。index 屬性聲明的是匹配文本的起始字符在 stringObject 中的位置,input 屬性聲明的是對 stringObject 的引用。這裏跟exec()方法相似

  • regexp 有 g 標誌

  · match() 方法將執行全局檢索,找到 stringObject 中的全部匹配子字符串。若沒有找到任何匹配的子串,則返回 null。若是找到了一個或多個匹配子串,則返回一個數組。不過全局匹配返回的數組的內容與前者大不相同,它的數組元素中存放的是 stringObject 中全部的匹配子串(區分子表達式),並且也沒有 index 屬性或 input 屬性,regexp實例的lastIndex屬性恆爲0。不一樣於exec()方法· 在全局檢索模式下,match() 即不提供與子表達式匹配的文本的信息,也不聲明每一個匹配子串的位置。若是您須要這些全局檢索的信息,可使用 RegExp.exec()。

相關文章
相關標籤/搜索