1、数组对象
数组对象的创建有两个方法:1、new Array 2、字面量来创建
new arr=new Array();
1.1数组类型的检测
在开发过程中,用来检测数组的两种常见方式是instanceof运算符或者是使用Array.isArray()方法来检测。
var arr = ();
var obj = ();
//第一种方法
console.log(arr instanceof Array);//输出结果True
console.log(obj instanceof Array);//输出结果False
//第二种方法
console.log(Array is.Array(arr));//输出结果True
console.log(Array is.Array(obj));//输出结果False
在上面的代码中输出为true的是数组,false的就不是数组了。
1.2添加或删除元素
JavaScript中为我们提供了对数组对象的添加或删除元素的方法。
方法名 | 功能描述 | 返回值 |
push(参数1…) | 数组末尾添加一个或多个元素,会修改原数组 | 返回数组的新长度 |
unshift(参数1…) | 数组开头添加一个或多个元素,会修改原数组 | 返回数组的新长度 |
pop() | 删除数组的最后一个元素,若是空数组则返回undefined,会修改原数组 | 返回删除的元素的值 |
shift() | 删除数组的第一个元素,若是空数组则返回undefined,会修改原数组 | 返回删除的元素的值 |
注意:
1.push()和unshift()方法可以指定数组在末尾或开头添加一个或多个元素
2.pop()和shift()方法则只能移出并返回指定数组在末尾或开头的一个元素。
1.3数组的排序
JavaScript数组对象提供了数组排序的方法,可以实现可以实现数组元素排序或者颠倒数组元素的顺序等。
方法名 | 功能描述 |
reverse() | 颠倒数组中元素的位置,该方法会改变原数组,返回新数组 |
sort() | 对数组的元素进行排序,该方法会改变原数组,返回新数组 |
1.4数组索引
在开发过程中,若要查找指定元素在数组中的位置,则可以利用Array对象提供的检索方法。
检索方法
方法名 | 功能描述 |
indexOf() | 返回在数组中可以找到给定值的第一个索引,如果不存在则返回-1 |
lastlndexOf() | 返回指定元素在数组中的最后一个索引,如果不存在则返回-1 |
代码演示
//使用toString()
var arr = ['a','b','c'];
console.log(arr.toString());//输出结果:a,b,c
//使用join()
console.log(arr.join());//输出结果:a,b,c
console.log(arr.join(''));//输出结果:abc
console.log(arr.join('-'));//输出结果:a-b-c
注意
1.join()和toString()方法可以将多维数组转化为字符串,默认情况下使用逗号连接。
2.join()方法可以指定连接数组元素的符号,当数组元素为nudefined、null、或者空数值时,对应元素全部转换为空字符串。
1.8其他方法
方法名 | 功能描述 |
fill() | 用一个固定值填充数组中指定下标范围内的全部元素 |
splice() | 数组删除,参数为splice(第几个开始,要删除个数),返回被删除项目的新数组 |
slice() | 数组截取,参数为slice(begin,end),返回被截取项目的新数组 |
concat() | 连接俩个或多个数组,不影响原数组,返回一个新数组 |
注意:
1.slice()和 concat() 方法在执行后一个新的数组,不会对原数组产生产生影响,剩余方法在执行后皆会对原数组产生影响
//fill()
var arr = [1, 2, 3, 4, 5]
// fill(value)
console.log("fill(value)填充前:" + arr);
arr.fill('*')
console.log("fill('*')填充后:" + arr);
// fill(value,start)
console.log("fill(value,start)填充前:" + arr);
arr.fill('*', 2)
console.log("fill('*', 2)填充后:" + arr);
// fill(value,start,end) console.log("fill(value,start,end)填充前:" + arr);
arr.fill('*', 2, 4)
console.log("fill('*', 2, 4)填充后:" + arr);
//splice()
var arr = [1, 2, 3, 4, 5]
// splice(start)
console.log("splice(start)删除前:"+arr);
arr.splice(2);
console.log("splice(2)删除后:"+arr);
// splice(start, deleteCount)
console.log("splice(start, deleteCount)删除前:"+arr);
arr.splice(2,1);
console.log("splice(2, 1)删除后:"+arr);
// splice(start, deleteCount, item1)
console.log("splice(start, deleteCount, item1)删除前:"+arr);
arr.splice(2,1,6);
console.log("splice(2, 1, 6)删除后:"+arr);
// splice(start, deleteCount, item1, item2, itemN)
console.log("splice(start, deleteCount, item1, item2, itemN)删除前:"+arr);
arr.splice(2,1,6,7);
console.log("splice(2, 1, 6, 7)删除后:"+arr);
// slice()
var arr = [1, 2, 3, 4, 5]
console.log("slice()截取全部元素:"+arr.slice());
// slice(start)
console.log("slice(start)截取前:"+arr);
console.log("slice(2)截取后:"+arr.slice(2));
// slice(start, end) 不包括end
console.log("slice(start)截取前:"+arr);
console.log("slice(2,4)截取后:"+arr.slice(2,4));
// concat()
var arr1= ['a', 'b', 'c'];
var arr2 = ['d', 'e', 'f'];
console.log("arr1.concat()后的新数组:"+arr1.concat());
// concat(value0)
console.log("arr1.concat(arr2)后的新数组:"+arr1.concat(arr2));
2、字符串对象
1、创建字符串对象:
var str1 = new String("asdfgte");
var str2 = String("abcdefg");
var str3 = "abcdefg";
2、根据字符串返回位置
字符串对象用于检索元素的方法
方法 | 作用 |
indexOf(searchValue) | 获取searchValue在字符串中首次出现的位置 |
lastindexOf(searchValue) | 获取searchValue在字符串中最后一次出现的位置 |
var str = 'HelloWorld';
str.indexOf('o');//获取“o”在字符串中首次出现的位置, 返回结果:4
str.lastIndexOf('o');//获取“o”在字符串中最后出现的位置, 返回结果:6
注意:字符串中的空格会被当成一个字符来处理
3、字符串操作方法
字符串对象用于截取、连接和替换字符串的方法
成员 | 作用 | |
concat(str1, str2, str3…) | concat() 方法用于连接两个或多个字符串。拼接字符串,等效于+,+更常用 该方法没有改变原有字符串,会返回连接两个或多个字符串新字符串 | |
| 截取从start位置到end(不包含end)位置之间的一个子字符串 可提取字符串的某个部分,并以新的字符串返回被提取的部分 | |
substring(start[, end]) | 截取从start位置到end位置之间的一个子字符串,基本和slice相同,但是不接收负值 | |
substr(start[, length]) | 截取从start位置开始到length长度的子字符串 从起始索引号提取字符串中指定数目的字符 | |
toLowerCase() | 获取字符串的小写形式 | |
toUpperCase() | 获取字符串的大写形式 | |
split([separator[, limit]) | 使用separator分隔符将字符串分隔成数组,limit用于限制数量 separator可选。 limit可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回 的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都 会被分割,不考虑它的长度 |
代码如下:
var str = 'HelloWord';
// concat
var res = str.concat('!!');
console.log(res);//HelloWord!!
// slice
var res1 = str.slice(1, 5);
console.log(res1); //ello
// substring
var res2 = str.substring(3);//截取从下标为3开始,之后的内容
console.log(res2);//loWord
var res3 = str.substring(3, 7);//截取从下标为3开始,到7结束的内容(不包含7)
console.log(res3);//loWo
// substr
var res4 = str.substr(2, 5);
console.log(res4);//lloWo
// toLowerCase
var res5 = str.toLocaleLowerCase();
console.log(res5);//helloword
// toUpperCase
var res6 = str.toLocaleUpperCase();
console.log(res6);//HELLOWORD
// split
var str1 = 'How are you doing today?'
var res7 = str1.split(' ');
console.log(res7);// ['How', 'are', 'you', 'doing', 'today?']
var res8 = str1.split();
console.log(res8);//['How are you doing today?']
var res9 = str1.split(' ', 3);
console.log(res9);// ['How', 'are', 'you']
// replace
var res10 = str1.replace(' ', ',');
console.log(res10);//How,are you doing today?