1 內容概述
js包含一些內置對象,如Array,Function,String等,這些是基本的,常用的js類,所以了解它們十分重要;把他們的方法,用例子和文字簡要的記錄下來,方便今后參看。
2 Array
2.1 array.concat(item…)
返回一個新數組;
新數組的內容包括:1. array自己的淺拷貝;2. item項,注意,若item是數組,則把這個數組的各項淺拷貝后,添加到新數組中。
2.2 array.join(separator)
返回array的字符串表示,表達格式是array的內容通過separator連接成的字符串。默認separator是‘,’。
2.3 array.pop()
移除數組的最后一個元素,並將這個元素作為返回值。array為空時,返回undefined。
2.4 array.push(item…)
將item添加到array的尾部,返回array的新長度值。
注意,若item是數組,則把它作為array的一項直接加入,這和concat的處理方式不同.
與concat的區別:1. push()修改array,而concat()生成新數組;2. 對於item是數組的情況,處理方式不同。
2.5 array.reverse()
倒置array的內容,並返回array。
2.6 array.shift()
移除array的第一個項,返回被刪除的這個項。array為空時,返回undefined。
2.7 array.unshift(item…)
與push()類似, 將item們插入array頭部, 返回array的新長度.
2.8 array.slice(start, end)
淺復制array的內容, 復制范圍[array[start], array[end]), 返回一個新數組。
說明: 1. end是可選的, 默認是array.length; 2.start和end負數時, 處理方式是把start,end與array.length相加; 3.start>=array.length時, 返回空數組. 例如,
var a = [1, 2, 3]; var b = a.slice(1, 2); // b is [2]
2.9 array.sort(compareFunction)
將數組根據比較函數定義的規則重新排序后,返回array. 默認是將array的內容按照字符串的形式比較, 所以通常需要自定義比較函數; 比較函數的一般形式是function (a, b) {…}, 若a<=b時則a在b之前, a>b時則a在b之后.
2.10 array.splice(start, deleteCount, newItem…)
把array從start位置開始, 刪除deleteCount個項, 並將newItem加入到start位置; 最后返回一個數組, 包含被刪除的元素.newItem是可選參數. 例如,
var a = ['a', 'b', 'c']; var b = a.splice(1, 1, 'd'); // a is ['a', 'd', 'c'], b is ['b']
3 Number
3.1 number.toExponential(fractionDigits)
將數字轉換為指數表示形式字符串,fractionDigits指定指數的小數位的位數, 取值區間[0,20].
3.2 number.toFixed(fractionDigits)
將數字表示成10進制字符串, fractionDigits同上.
3.3 number.toPrecision(precision)
與toFixed()類同, 只是precision指定的是數字的有效位數, 取值范圍[0,21].
3.4 number.toString(radix)
將number轉換為需要的進制字符串形式,radix默認是10.
4 RegExp
4.1 regexp.exec(String)
匹配成功, 返回數組,數組第一個項是匹配的整個字符串, 此后項是匹配分組,最后是匹配信息如配置位置,輸入的字符串;若找不到匹配, 返回null.
lastIndex屬性: 當regexp帶有'g'全局標識時, regexp對象維護一個lastIndex屬性,每次exec()從lastIndex開始查找;
這個值在exec每次成功執行后, 取值配置成功字符串的后一個字符開始位置.在配置失敗后, lastIndex被設置為0.
使用注意的地方, 就在於若在配置成功又不再執行exec時, 需要手動將lastIndex設置為0.
常規使用模式,
var text = 'string'; var regexp = /regexp/g;; var array; while (array = regexp.exec(string)) { ..... //todo something }
4.2 regexp.test(String)
regexp配置string, 則返回true, 否則返回false.
test()時, 不應使用g, 性能優於exec().
5 String
5.1 string.charAt(pos)
返回pos位置上的字符串(js沒有char類型). 若pos<0或>=string.length, 則返回空字符串.
5.2 string.charCodeAt(pos)
與charAt()的區別在於返回位置上字符串對應的字符編碼值(unicode), 若pos不在合法范圍內, 就返回NaN. 示例,
var s = '戴忠'; var i; for (i = 0; i < s.length; i++) { console.log(i + ' ' + s.charAt(i) + ' ' + s.charCodeAt(i)); // 0 戴 25140 1 忠 24544 }
5.3 string.concat(string…)
將字符串連接在一起並返回.
5.4 string.indexOf(searchString, pos)
從string的pos開始向后查找searchString, 若找到則返回searchString出現的初始位置,否則返回-1.
5.5 string.lastIndexOf(searchString, pos)
它與indexOf(searchString, pos)的區別在於查找方向相反, 從pos位置開始向前查找.
5.6 str1.localeCompare(str2)
比較兩個字符串, 若str1<str2則返回負數, 若相等則返回0, 否則正數.
5.7 string.match(regexp)
若regexp帶'g', 則返回包含匹配內容的數組(不包含分組).沒有'g'時, 則和regexp.exec(string)返回相同的結果. 例如,
var s1 = '1a2b'; var reg1 = /\d+/; var reg2 = /[^\d]+/g; var reg3 = /(\d)+/; console.log(reg1.exec(s1)); // [ '1', index: 0, input: '1a2b' ] console.log(s1.match(reg1)); // [ '1', index: 0, input: '1a2b' ] console.log(s1.match(reg3)); // [ '1', '1', index: 0, input: '1a2b' ] console.log(s1.match(reg2)); // [ 'a', 'b' ]
5.8 string.replace(searchValue, replaceValue)
將string中匹配searchValue的內容, 用repalceValue取代, 最后返回生成的新字符串.一般只替換第一次配置的內容, 在包含'g'時, 全部替換. 參數說明:
- searchValue是字符串, 或者是正則表達式;
- repalceValue可包含一些特殊含義的內容, 如
特殊字符 | 替換值 |
---|---|
$$ | $ |
$& | 整個匹配的文本 |
$number | 分組捕獲的文本 |
$` | 匹配之前的文本 |
$' | 匹配之后的文本 |
5.9 string.search(regexp)
與indexOf()功能類似, 返回值情況相同. 這個方法忽略'g'.
5.10 string.slice(start, end)
復制string的內容, 范圍[start, end), 不包含end位置的內容. 這個函數的參數取值情況和array.slice()參數取值情況差不多.
5.11 string.split(separator, limit)
將string根據separator的要求分隔內容, 返回形成的數組.limit參數是可選的, 表示分隔的最大個數.separator是一個字符串或者正則表達式.這個方法忽略'g'.
5.12 string.toLowerCase()
返回小寫的新字符串.
5.13 string.toUpperCase()
返回大寫的新字符串.
5.14 String.fromCharCode(code…)
參數是一些數值, 把這些數值作為字符的編碼值對待, 返回一個字符串. 這個方法和charCodeAt()相反.
var str = String.fromCharCode(25140, 24544); console.log(str)