字符串
字符串的創(chuàng)建:
var str = "abc";
var str = new String();
將任意類型的值轉(zhuǎn)換成字符串:
Var a = 10;
Var str = a.toString(); //string
Var str1 = “”+a; //string
Var str2 = String(a);//string
除了 slice() 和 substr() 方法里的負(fù)值是代表從右截取俘侠,其他方法里的負(fù)值一律作為0處理
- charCodeAt方法返回一個整數(shù)象缀,代表指定位置字符的Unicode編碼。
Str.charCodeAt(index);如果指定位置沒有字符爷速,返回NaN央星;
var str = "abc";
console.log(str.charCodeAt(3));//NaN
fromCharCode方法從一些Unicode字符串中返回一個字符串。
charAt方法返回指定索引位置處的字符惫东。如果超出有效范圍的索引值返回空字符串莉给。
slice方法返回字符串的片段。
strObj.slice(start[,end])
start下標(biāo)從0開始的strObj指定部分起始索引凿蒜。如果start為負(fù)禁谦,將它作為length+start處理,此處length為字符串的長度废封。
end小標(biāo)從0開始的strObj指定部分結(jié)束索引州泊。如果end為負(fù),將它作為length+end處理漂洋,此處length為字符串的長度遥皂。
var str = "abc";
var str1 = str.slice(0,-2);
var str2 = str.slice(-1);
console.log(str1,str2);//a c
5、substring方法返回位于String對象中指定位置的子字符串
strObj.substring(start,end)
start指明子字符串的起始位置刽漂,該索引從0開始起算演训。
end指明子字符串的結(jié)束位置,該索引從0開始起算贝咙。
substring方法使用start和end兩者中的較小值作為子字符串的起始點(diǎn)样悟。如果start或end為NaN或者為負(fù)數(shù),那么將其替換為0。
6窟她、substr方法返回一個從指定位置開始的指定長度的子字符串陈症。
strObj.substr(start[,length])
start所需的子字符串的起始位置。字符串中的第一個字符的索引為0震糖。
length在返回的子字符串中應(yīng)包括的字符個數(shù)录肯。
var str = "ABCDEF";
str.substr(2,4); //CDEF ;
7吊说、indexOf方法返回String對象內(nèi)第一次出現(xiàn)子字符串位置论咏。如果沒有找到子字符串,則返回-1颁井。
lastindexOf()方法從尾部開始尋找對象中第一次出現(xiàn)子字符串的位置
strObj.indexOf(substr[,startIndex])
substr要在String對象中查找的子字符串厅贪。
startIndex該整數(shù)值指出在String對象內(nèi)開始查找的索引。如果省略蚤蔓,則從字符串的開始處查找卦溢。
var str = "ABCDECDF";
str.indexOf("CD",1); // 由1位置從左向右查找 123... 結(jié)果:2
8秀又、search方法返回與正則表達(dá)式查找內(nèi)容匹配的第一個字符串的位置单寂。
strObj.search(reExp)
reExp包含正則表達(dá)式模式和可用標(biāo)志的正則表達(dá)式對象。
var str = "ABCDECDF";
str.search("CD"); // 或 str.search(/CD/i); 結(jié)果:2
9吐辙、concat方法返回字符串值宣决,該值包含了兩個或多個提供的字符串的連接。
str.concat([string1[,string2...]])
string1昏苏,string2要和所有其他指定的字符串進(jìn)行連接的String對象或文字尊沸。
var str = "ABCDEF";
str.concat("ABCDEF","ABC");
結(jié)果:ABCDEFABCDEFABC
10、Split將一個字符串分割為子字符串贤惯,然后將結(jié)果作為字符串?dāng)?shù)組返回洼专。
strObj.split([separator[,limit]])
separator字符串或 正則表達(dá)式 對象,它標(biāo)識了分隔字符串時使用的是一個還是 多個字符孵构。如果忽略該選項屁商,返回包含整個字符串的單一元素數(shù)組。
limit該值用來限制返回數(shù)組中的元素個數(shù)颈墅。
var str = "AA BB CC DD EE FF";
alert(str.split(" "蜡镶,3));
結(jié)果: AA,BB,CC
11、 toLowerCase方法用于將一個字符串全部轉(zhuǎn)為小寫
toUpperCase則是全部轉(zhuǎn)為大寫恤筛。
它們都返回一個新字符串官还,不改變原字符串。
console.log(" hello word ".trim());
//hello world
console.log('Hello World'.toLowerCase());
// "hello world"
console.log('Hello World'.toUpperCase());
// "HELLO WORLD"
12毒坛、trim(): 用于去除字符串兩端的空白望伦,返回一個新字符串 不改變原數(shù)據(jù)
console.log(' hello world '.trim())林说; //hello word
13、replace 返回被替換的字符串
str.replace(rgExp/substr,replaceText)
數(shù)組
數(shù)組的概念:有序的元素的集合 使用數(shù)字作為索引的一個對象 索引為從0開始的整數(shù)
創(chuàng)建方式
1屯伞、構(gòu)造數(shù)組 var arr = new Array()述么;
向數(shù)組中添加元素:數(shù)組[索引] = 值;
讀取數(shù)組 數(shù)組[索引] 當(dāng)索引值比數(shù)組長度大時愕掏,會返回undefined;
數(shù)組長度:數(shù)組.length;
var arr1 = new Array();
arr1[0] = 1;
arr1.length = 10;
console.log(arr1,arr1.length); //如果修改的length大于原長度顶伞,則多出部分會空出來饵撑;
arr1.length = 2;
console.log(arr1,arr1.length); //如果修改的length小于原長度,則多出的部分會刪除唆貌;
2滑潘、字面量創(chuàng)建數(shù)組 var arr = [];
中括號里邊可以直接添加元素(可以是任意類型的數(shù)據(jù)類型)锨咙;
數(shù)組的操作方法
1语卤、push() 可以接收任意數(shù)量的參數(shù),把他們逐個添加到數(shù)組末尾酪刀,并返回修改后數(shù)組的長度
2粹舵、Pop() 數(shù)組末尾移除最后一項,減少數(shù)組的LENGTH值骂倘,并返回被刪除的元素
3眼滤、Unshift() 在數(shù)組的頭部添加一個或者多個元素,返回增加后數(shù)組的長度
4历涝、Shift() 從數(shù)組的頭部刪除一個元素并返回這個刪除的元素诅需,如果數(shù)組為空則返回undefined;
5荧库、Slice()返回從原數(shù)組中指定開始下標(biāo)到結(jié)束下標(biāo)之間的項組成的新數(shù)組堰塌。
slice()方法可以接受一或兩個參數(shù),即要返回項的起始和結(jié)束位置分衫。
在只有一個參數(shù)的情況下场刑, slice()方法返回從該參數(shù)指定位置開始到當(dāng)前數(shù)組末尾的所有項。
如果有兩個參數(shù)丐箩,該方法返回起始和結(jié)束位置之間的項——但不包括結(jié)束位置的項摇邦。
var a = arr(0,2);
第二個參數(shù)可以是負(fù)值:則從后往前截取 -1:最后一個
6、splice:
刪除:可以刪除任意數(shù)量的項屎勘,只需指定 2 個參數(shù):要刪除的第一項的位置和要刪除的項數(shù)施籍。例如, splice(0,2)會刪除數(shù)組中的前兩項概漱。
插入:可以向指定位置插入任意數(shù)量的項丑慎,只需提供 3 個參數(shù):起始位置、 0(要刪除的項數(shù))和要插入的項。例如竿裂,splice(2,0,4,6)會從當(dāng)前數(shù)組的位置 2 開始插入4和6玉吁。
替換:可以向指定位置插入任意數(shù)量的項,且同時刪除任意數(shù)量的項腻异,只需指定 3 個參數(shù):起始位置进副、要刪除的項數(shù)和要插入的任意數(shù)量的項。插入的項數(shù)不必與刪除的項數(shù)相等悔常。例如影斑,splice (2,1,4,6)會刪除當(dāng)前數(shù)組位置 2 的項,然后再從位置 2 開始插入4和6机打。
splice()方法始終都會返回一個數(shù)組矫户,該數(shù)組中包含從原始數(shù)組中刪除的項,如果沒有刪除任何項残邀,則返回一個空數(shù)組皆辽。
7、join()
將數(shù)組的元素組成一個字符串
不會對原數(shù)據(jù)產(chǎn)生影響芥挣,會把轉(zhuǎn)化后的字符串作為結(jié)果返回
在join()中可以指定一個字符串作為參數(shù)驱闷,這個字符串將會作為數(shù)組中元素的連接符,如果不指定連接符九秀,默認(rèn)為逗號
8遗嗽、reverse():
用來反轉(zhuǎn)數(shù)組,前面的去后面鼓蜒,后面的去前面痹换;
9、Sort() 對數(shù)組成員進(jìn)行排序都弹,默認(rèn)按照字典順序排序娇豫,原數(shù)組會改變
arr.sort(function (a,b){
return a-b;//升序
})
sort的參數(shù)函數(shù)本身接受兩個參數(shù),表示進(jìn)行比較的兩個數(shù)組成員畅厢。如果該函數(shù)的返回值大于0冯痢,表示第一個成員排在第二個成員后面;其他情況下框杜,都是第一個元素排在第二個元素前面
10浦楣、concat() :將參數(shù)添加到原數(shù)組中。
這個方法會先創(chuàng)建當(dāng)前數(shù)組一個副本咪辱,然后將接收到的參數(shù)添加到這個副本的末尾振劳,最后返回新構(gòu)建的數(shù)組。在沒有給 concat()方法傳遞參數(shù)的情況下油狂,它只是復(fù)制當(dāng)前數(shù)組并返回副本历恐。
11寸癌、indexOf():接收兩個參數(shù):要查找的項和(可選的)表示查找起點(diǎn)位置的索引。其中弱贼, 從數(shù)組的開頭(位置 0)開始向后查找蒸苇。
12、lastIndexOf:接收兩個參數(shù):要查找的項和(可選的)表示查找起點(diǎn)位置的索引吮旅。其中溪烤, 從數(shù)組的末尾開始向前查找。
這兩個方法都返回要查找的項在數(shù)組中的位置庇勃,或者在沒找到的情況下返回-1氛什。在比較第一個參數(shù)與數(shù)組中的每一項時,會使用全等操作符匪凉。
13、forEach():對數(shù)組進(jìn)行遍歷循環(huán)捺檬,對數(shù)組中的每一項運(yùn)行給定函數(shù)再层。這個方法沒有返回值。參數(shù)都是function類型堡纬,默認(rèn)有傳參聂受,參數(shù)分別為:遍歷的數(shù)組內(nèi)容;對應(yīng)的數(shù)組索引烤镐,數(shù)組本身蛋济。
var arr = [1,2,6,4];//1 0 true;2 1 true炮叶;6 2 true碗旅;4 3 true
arr.forEach(function (x,index,a){
console.log(x+" "+index+" "+(a===arr));
})
14、map():指“映射”镜悉,對數(shù)組中的每一項運(yùn)行給定函數(shù)祟辟,返回每次函數(shù)調(diào)用的結(jié)果組成的數(shù)組。
var arr1 = [32,5,11,12];
var arr = arr1.map(function (x){
return x+3
})
console.log(arr); //[35,8,14,15]
15侣肄、filter(): 用于過濾數(shù)組成員旧困,滿足條件的成員組成一個 新數(shù)組返回 原數(shù)組不變
它的參數(shù)是一個函數(shù),所有數(shù)組成員一次執(zhí)行稼锅,返回結(jié)果為 true 的元素組成一個新數(shù)組返回
第一個參數(shù):當(dāng)前成員
第二個參數(shù):當(dāng)前成員的索引
第三個參數(shù):整個數(shù)組
var arr2 = [21,152,66,565];
var arr3 = arr2.filter(function (x,index){
return x % 3 == 0;
})
console.log(arr3);//[21,66];
15吼具、every():判斷數(shù)組中每一項都是否滿足條件,只有所有項都滿足條件矩距,才會返回true拗盒。
16、some():判斷數(shù)組中是否存在滿足條件的項剩晴,只要有一項滿足條件锣咒,就會返回true侵状。
//every
var arr4 = [26,641,15312,63,1];
var arr5 = arr4.every(function (x){
return x > 1;
})
console.log(arr5);//false
//some
var arr7 = arr4.some(function (x){
return x > 1;
})
console.log(arr7);//true
17、reduce(): 將內(nèi)部的返回值作為實參傳遞第一個形參毅整,進(jìn)行下一次運(yùn)算
var arr =[1,2,3,5]
var sum = arr.reduce(function(a,b){
return a+b;
});
console.log(sum); //1+2+3+5=11