字符串
字符串的创建:
var str = "abc";
var str = new String();
将任意类型的值转换成字符串:
Var a = 10;
Var str = a.toString(); //string
Var str1 = “”+a; //string
Var str2 = String(a);//string
除了 slice() 和 substr() 方法里的负值是代表从右截取,其他方法里的负值一律作为0处理
- charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码。
Str.charCodeAt(index);如果指定位置没有字符,返回NaN;
var str = "abc";
console.log(str.charCodeAt(3));//NaN
fromCharCode方法从一些Unicode字符串中返回一个字符串。
charAt方法返回指定索引位置处的字符。如果超出有效范围的索引值返回空字符串。
slice方法返回字符串的片段。
strObj.slice(start[,end])
start下标从0开始的strObj指定部分起始索引。如果start为负,将它作为length+start处理,此处length为字符串的长度。
end小标从0开始的strObj指定部分结束索引。如果end为负,将它作为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指明子字符串的结束位置,该索引从0开始起算。
substring方法使用start和end两者中的较小值作为子字符串的起始点。如果start或end为NaN或者为负数,那么将其替换为0。
6、substr方法返回一个从指定位置开始的指定长度的子字符串。
strObj.substr(start[,length])
start所需的子字符串的起始位置。字符串中的第一个字符的索引为0。
length在返回的子字符串中应包括的字符个数。
var str = "ABCDEF";
str.substr(2,4); //CDEF ;
7、indexOf方法返回String对象内第一次出现子字符串位置。如果没有找到子字符串,则返回-1。
lastindexOf()方法从尾部开始寻找对象中第一次出现子字符串的位置
strObj.indexOf(substr[,startIndex])
substr要在String对象中查找的子字符串。
startIndex该整数值指出在String对象内开始查找的索引。如果省略,则从字符串的开始处查找。
var str = "ABCDECDF";
str.indexOf("CD",1); // 由1位置从左向右查找 123... 结果:2
8、search方法返回与正则表达式查找内容匹配的第一个字符串的位置。
strObj.search(reExp)
reExp包含正则表达式模式和可用标志的正则表达式对象。
var str = "ABCDECDF";
str.search("CD"); // 或 str.search(/CD/i); 结果:2
9、concat方法返回字符串值,该值包含了两个或多个提供的字符串的连接。
str.concat([string1[,string2...]])
string1,string2要和所有其他指定的字符串进行连接的String对象或文字。
var str = "ABCDEF";
str.concat("ABCDEF","ABC");
结果:ABCDEFABCDEFABC
10、Split将一个字符串分割为子字符串,然后将结果作为字符串数组返回。
strObj.split([separator[,limit]])
separator字符串或 正则表达式 对象,它标识了分隔字符串时使用的是一个还是 多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。
limit该值用来限制返回数组中的元素个数。
var str = "AA BB CC DD EE FF";
alert(str.split(" ",3));
结果: AA,BB,CC
11、 toLowerCase方法用于将一个字符串全部转为小写
toUpperCase则是全部转为大写。
它们都返回一个新字符串,不改变原字符串。
console.log(" hello word ".trim());
//hello world
console.log('Hello World'.toLowerCase());
// "hello world"
console.log('Hello World'.toUpperCase());
// "HELLO WORLD"
12、trim(): 用于去除字符串两端的空白,返回一个新字符串 不改变原数据
console.log(' hello world '.trim()); //hello word
13、replace 返回被替换的字符串
str.replace(rgExp/substr,replaceText)
数组
数组的概念:有序的元素的集合 使用数字作为索引的一个对象 索引为从0开始的整数
创建方式
1、构造数组 var arr = new Array();
向数组中添加元素:数组[索引] = 值;
读取数组 数组[索引] 当索引值比数组长度大时,会返回undefined;
数组长度:数组.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、字面量创建数组 var arr = [];
中括号里边可以直接添加元素(可以是任意类型的数据类型);
数组的操作方法
1、push() 可以接收任意数量的参数,把他们逐个添加到数组末尾,并返回修改后数组的长度
2、Pop() 数组末尾移除最后一项,减少数组的LENGTH值,并返回被删除的元素
3、Unshift() 在数组的头部添加一个或者多个元素,返回增加后数组的长度
4、Shift() 从数组的头部删除一个元素并返回这个删除的元素,如果数组为空则返回undefined;
5、Slice()返回从原数组中指定开始下标到结束下标之间的项组成的新数组。
slice()方法可以接受一或两个参数,即要返回项的起始和结束位置。
在只有一个参数的情况下, slice()方法返回从该参数指定位置开始到当前数组末尾的所有项。
如果有两个参数,该方法返回起始和结束位置之间的项——但不包括结束位置的项。
var a = arr(0,2);
第二个参数可以是负值:则从后往前截取 -1:最后一个
6、splice:
删除:可以删除任意数量的项,只需指定 2 个参数:要删除的第一项的位置和要删除的项数。例如, splice(0,2)会删除数组中的前两项。
插入:可以向指定位置插入任意数量的项,只需提供 3 个参数:起始位置、 0(要删除的项数)和要插入的项。例如,splice(2,0,4,6)会从当前数组的位置 2 开始插入4和6。
替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定 3 个参数:起始位置、要删除的项数和要插入的任意数量的项。插入的项数不必与删除的项数相等。例如,splice (2,1,4,6)会删除当前数组位置 2 的项,然后再从位置 2 开始插入4和6。
splice()方法始终都会返回一个数组,该数组中包含从原始数组中删除的项,如果没有删除任何项,则返回一个空数组。
7、join()
将数组的元素组成一个字符串
不会对原数据产生影响,会把转化后的字符串作为结果返回
在join()中可以指定一个字符串作为参数,这个字符串将会作为数组中元素的连接符,如果不指定连接符,默认为逗号
8、reverse():
用来反转数组,前面的去后面,后面的去前面;
9、Sort() 对数组成员进行排序,默认按照字典顺序排序,原数组会改变
arr.sort(function (a,b){
return a-b;//升序
})
sort的参数函数本身接受两个参数,表示进行比较的两个数组成员。如果该函数的返回值大于0,表示第一个成员排在第二个成员后面;其他情况下,都是第一个元素排在第二个元素前面
10、concat() :将参数添加到原数组中。
这个方法会先创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组。在没有给 concat()方法传递参数的情况下,它只是复制当前数组并返回副本。
11、indexOf():接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中, 从数组的开头(位置 0)开始向后查找。
12、lastIndexOf:接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中, 从数组的末尾开始向前查找。
这两个方法都返回要查找的项在数组中的位置,或者在没找到的情况下返回-1。在比较第一个参数与数组中的每一项时,会使用全等操作符。
13、forEach():对数组进行遍历循环,对数组中的每一项运行给定函数。这个方法没有返回值。参数都是function类型,默认有传参,参数分别为:遍历的数组内容;对应的数组索引,数组本身。
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():指“映射”,对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
var arr1 = [32,5,11,12];
var arr = arr1.map(function (x){
return x+3
})
console.log(arr); //[35,8,14,15]
15、filter(): 用于过滤数组成员,满足条件的成员组成一个 新数组返回 原数组不变
它的参数是一个函数,所有数组成员一次执行,返回结果为 true 的元素组成一个新数组返回
第一个参数:当前成员
第二个参数:当前成员的索引
第三个参数:整个数组
var arr2 = [21,152,66,565];
var arr3 = arr2.filter(function (x,index){
return x % 3 == 0;
})
console.log(arr3);//[21,66];
15、every():判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回true。
16、some():判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回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(): 将内部的返回值作为实参传递第一个形参,进行下一次运算
var arr =[1,2,3,5]
var sum = arr.reduce(function(a,b){
return a+b;
});
console.log(sum); //1+2+3+5=11