陣列的方法:
array.concat 一個陣列去連接另一個數組,回傳一個合成數組。 var arrC=arrA.concat(arrB,'asd','sad',true,1.5);
array.join 將陣列用指定符號連接為一個字串,並傳回這個字串。比用+快很多。 var strA=arrA.join(",");//預設為逗號
array.pop 移除陣列最後一個元素,並傳回這個元素.var A=arrA.pop();
array.push 將一個或多個參數附加到陣列的尾部,並傳回一個新長度值。 arrA.push("asd");
array.shift 移除陣列的第一個元素,並傳回這個元素。它比pop慢得多,原因我想應該是這只是一個偽數組,刪除第一個要將所有的元素往前推一格。 var A=arrA.shift();
array.unshift 講一個或多個參數附加到陣列的頭部。 arrA.unshift("asd");
array.reverse 反轉數組裡元素的順序。 var arrB=arrA.reverse();
array.slice 對陣列做一段淺複製。然後賦值兩個下標之間的陣列,傳回一個新的陣列。 var arrB=arrA.slice(0,3);//將第0,1,2個元素取出,後面的3也可以不填
array.sort 將陣列中的內容排序。 arrA.sort();//預設會吧元素都轉換為字串並進行比較。當然也可以將一個比較函數當作參數傳進去
arrA.sort(function(a,b){
return a-b;
});
array.splice 從陣列中移除一個或多個元素,並用新的元素取代它們。 var arrB=arrA.splice(0,3,'asd','ads');//移除從下標0開始的3個元素,並用後面兩個元素進行替換
函數的方法:
function.apply 呼叫函數,傳遞一個被綁定到this之上的對象,和一個可選的數組作為參數數組。
數字的方法:
number.toExponential 將這個數字轉換為一個指數形式的字串。 Math.PI.toExponential(2);//3.14e+0
number.toFixed 將這個數字轉換為一個十進位數形式的字串。 Math.PI.toFixed(2);//3.14,保留兩位小數
number.toPrecision 將這個數字轉換為一個十進位數形式的字串。 Math.PI.toPrecision(2);//3.1,保留兩個有效數字
number.toString 將這個數字轉換為字串。 Math.PI.toString(2);//這裡的2表示進制,而不是精確度
物件的方法:
object.hasOwnProperty 判斷物件是否包含以指定字串命名的屬性
正規表示式的方法:
regexp.exec
如果成功匹配,會傳回一個陣列。下標0會傳回符合的原字串,1~後面回傳的是分組1~捕獲的文字。
如果帶有g標識(全域標識),那麼查找不是從字串開始的位置開始,而是從regexp.lastIndex開始。如果符合成功,那麼會設定regexp.lastIndex為符合成功的字串第一個字元的位置,否則重設為0。
regexp.test 如果成功匹配,回傳true,否則false
字串的方法:
string.charAt 傳回字串中指定位置處的字元
string.charCodeAt 傳回字串中指定位置處的字元的ASCII碼值
string.concat 將其它字串連接到一起,傳回一個新的合成字串。實際上用+更方便,且更直覺。
string.indexOf 在此字串中尋找指定的另外一個字串,如果找到了,就傳回第一個找到的字串的位置,否則傳回-1."asdasd".indexOf("sd",2); //值為4,2表示從第3個字元開始找出
string.lastIndexOf 這個與上面的相似,只不過是從字串尾部開始找出
string.localeCompare 比較兩個字串。 strA.localeCompare(strB);//結果也是回傳正數,負數,零,你懂的
string.replace 對一個字串進行查找並替換的操作,並傳回新的字串(以下名字標紅的方法,都是可以應用正規表示式的)
常規方法:
'asdasd'.replace('as','d');//結果為ddasd,replace只會替換第一次的出現位置。
正規表示式方法:
加g標識匹配多次,不加匹配一次
var regExp=/ee(asdd{0,3})/g;//加g標識符合多次,不加一次符合
var p='eeasd1323'.replace(regExp,'$1end');//結果為eeasd1323end
//'$1end'的位置也可以放一個函數,每次匹配到會運行這個函數,然後用函數的返回值替換,這裡就不舉栗子了
'$1end'這個東西的解釋是這樣的:
$$:表示$這個符號
$&: 表示$&整個符合的文字
$number:表示分組捕獲的文本,例如上面的$1就是捕獲分組1捕捉到的文本
$`:符合之前的文字
$':符合之後的文字
string.match 讓一個字串和一個正規表示式匹配。它依據g標識來決定如何進行匹配。
如果沒有g標識,則匹配結果與regexp.exec效果一樣
如果有,那麼會產生一個包含所有匹配(除捕獲分組之外這個括號裡的搞不懂什麼意思,明明就匹配了所有的)的數組
string.search 與indexof相似,只是接收一個正規表示式符合而已。此方法忽略g標識。
string.split 將字串分割來建立一個字串陣列。此方法忽略g標識。
一般的玩法
var digits='0123456789';
var arr=digits.split('',5);//5表示得到的陣列頂多五個元素,多餘的去掉
//結果為['0','1','2','3','4']
正規表示式的玩法
var text='troy ,123 , good ';
var d=text.split(/s*,s*/);//前面講過s表示unicode各種空字符,然後所以匹配的分隔符就是包含空字符的逗號,這樣就自動去掉空字符了,好強大
//但是有特例哦,來自分組捕獲的文本會被包含在分割後的字符,所以我個人建議那就別用分組捕獲好了,在這裡沒必要
string.slice 複製字串的一部分來建構一個新的字串
string.substring 與slice效果一樣,只是不能使用負數下標。沒有任何理由使用substring而不是slice(作者說的)。其實是有的,例如字面上我就知道什麼意思了。
string.toLowerCase 傳回一個全部小寫化的新字串。
string.toLocaleLowerCase 同上,土耳其語專用,所以你就當看不見好了
string.toUpperCase 傳回一個全部大寫化的新字串。
string.toLocaleUpperCase 同上,土耳其語專用,所以你就當看不見好了
String.fromCharCode 看好哦,string是大寫哦。所以不是在字串後面調用,而是用String呼叫。根據一串數字編碼傳回一個字串。 (相信你基本上用不到的)