- 長(zhǎng)度
屬性對(duì)象.length
- 字符串
var str = "abcd";
var strLength = str.length;// strLength為4
- 數(shù)組
var arr = [1,2,3,4];
var arrLength = arr.length;// arrLength為4
注意修改字符串的length
不會(huì)改變字符串的大小创南,但是修改數(shù)組的length
會(huì)改變數(shù)組大小。
例如:
str.length = 1;// str的長(zhǎng)度還是4,值還是"abcd"
arr.length = 1;// arr的長(zhǎng)度變?yōu)?,值是[1]
- 訪問(讀與寫)
對(duì)象[下標(biāo)]
下標(biāo)是從0開始的。即第一個(gè)的下標(biāo)為0,后面的依次類推為1敢课,2,3绷杜,...
- 字符串
var str = "abcd";
var c = str[3];// c為"d"
- 數(shù)組
var arr = [1,2,3,4];
var num = arr[3];// arrLength為4
注意修改字符串的下標(biāo)
不會(huì)改變字符串直秆,但是修改數(shù)組的下標(biāo)
會(huì)改變數(shù)組。
例如:
str[2] = 1;// str的值還是"abcd"
arr[2] = 1;// arr的值是[1,2,1,4]
- 截取
-
位置截取
字符串.substring(起始下標(biāo),結(jié)束下標(biāo))
字符串.slice(起始下標(biāo),結(jié)束下標(biāo))
var str = "abcdef"; var res1 = str.substring(2,4); // res1為cd var res2 = str.slice(2,4); // res2為cd var res3 = str.slice(-4,-2); // res3為cd
注意:
截取返回的字符串包含開始下標(biāo)的字符鞭盟,但是不包含結(jié)束下標(biāo)的字符圾结。
slice
比substring
靈活,可以使用負(fù)值下標(biāo)齿诉。
數(shù)組.slice(起始下標(biāo),結(jié)束下標(biāo))
var arr = [1,2,3,4,5,6]; var res1 = arr.slice(2,4); // res1為[3,4] var res2 = arr.slice(-4,-2); // res2為[3,4]
注意:截取返回的數(shù)組包含開始下標(biāo)的元素筝野,但是不包含結(jié)束下標(biāo)的元素晌姚。
-
長(zhǎng)度截取
字符串.substr(起始下標(biāo),截取長(zhǎng)度)
var str = "abcdef"; var res1 = str.substr(2,4); // res1為cdef var res2 = str.substr(2); // res2為cdef
注意:如果不指定截取的長(zhǎng)度,是從起始位置截取到結(jié)束歇竟。
數(shù)組.splice(起始下標(biāo),截取長(zhǎng)度)
var arr = [1,2,3,4,5,6]; var res1 = arr.splice(2,4); // res1為[3,4,5,6] res為[1,2]
注意:splice會(huì)把原來的數(shù)組截?cái)唷?/p>
- 連接concat
連接函數(shù)對(duì)象.concat(對(duì)象)
- 字符串連接
var str = "abc";
// 連接一個(gè)對(duì)象
var res1 = str.concat("d");// res1為"abcd"
// 連接多個(gè)對(duì)象
var res2 = str.concat("1","2")// res2為"abc12"
字符串更多使用
+
連接字符串挥唠。
- 數(shù)組連接
var arr = [1,2,3];
// 連接一個(gè)值
var res1 = arr.concat(4); //res1為[1,2,3,4]
// 連接多個(gè)值
var res2 = arr.concat(5,6); //res2為[1,2,3,5,6]
// 連接一個(gè)數(shù)組
var res3 = arr.concat([4,5]); //res3為[1,2,3,4,5]
// 連接多個(gè)數(shù)組
var res4 = arr.concat([5,6],[7,8]); //res4為[1,2,3,5,6,7,8]
concat不會(huì)改變對(duì)象(例子中的str和arr)的值,只是生成一個(gè)新的對(duì)象作為返回值焕议。
-
查找
從開始位置(0)查找元素首次出現(xiàn)的位置:對(duì)象.indexOf(查找元素)
從指定的位置開始查找元素首次出現(xiàn)的位置:對(duì)象.indexOf(查找元素宝磨,查找的起始位置)
從開始位置(0)查找元素最后出現(xiàn)的位置:對(duì)象.lastIndexOf(查找元素)
從指定的位置開始逆向查找元素最后出現(xiàn)的位置:對(duì)象.lastIndexOf(查找元素,查找的起始位置)
- 字符串
var str = "abcdabcd";
var res1 = str.indexOf("c");// res1值為2
var res2 = str.indexOf("e");// res2值為-1
var res3 = str.lastIndexOf("c");// res3值為6
var res4 = str.lastIndexOf("e");// res4值為-1
- 數(shù)組
var arr = [1,2,3,4,1,2,3,4];
var res1 = arr.indexOf(3);// res1值為2
var res2 = arr.indexOf(5);// res2值為-1
var res3 = arr.lastIndexOf(3);// res3值為6
var res4 = arr.lastIndexOf(5);// res4值為-1
上面函數(shù)如果查找到返回找到元素的下標(biāo)号坡,反之懊烤,返回-1梯醒,表示未找到宽堆。
字符串的indexOf是原有函數(shù),數(shù)組的indexOf是ES5的新添加函數(shù), 兼容性IE9+
清空
字符串清空字符串變量=""
數(shù)組清空數(shù)組變量.length=0
轉(zhuǎn)換
- 數(shù)組轉(zhuǎn)字符串
數(shù)組.split(分割字符)
var arr = [1,2,3];
var res = arr.join(',');// res為字符串"1,2,3"
- 字符串轉(zhuǎn)數(shù)組
字符串.join(分割字符)
var str = "1,2,3";
var res = str.split(',');// res為字符串[1,2,3]
注意分割字符可以是任意字符串
例如:
var arr = [1,2,3];
var res = arr.join('-');// res為字符串"1-2-3"
var str = "1&2&3";
var res = str.split('&');// res為字符串[1,2,3]