数组对象
创建数组的两种方式
-
- var arr=[] - var arr=new Array
检测是否为数组
instanceof
运算符
var arr=[1,2,3];
var a=0;
// instanceof
console.log(arr instanceof Array);
console.log(a instanceof Array);
Array.isArray()
var arr=[1,2,3];
var a=0;
//Array.isArray()
console.log(Array.isArray(arr))
console.log(Array.isArray(a))
数组排序
-
sort() 方法以字母顺序对数组进行排序(数字不适用)例如25>100 2>1;(传参数可以给数字排序)
-
reverse() 方法反转数组中的元素
var zim = ["Banana", "Orange", "Apple", "Mango"]; var zim1 = ["a","d","b"] console.log(zim1.reverse()) console.log(zim.sort())
添加删除数组元素的方法
shift
:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefinedunshift
:将参数添加到原数组开头,并返回数组的长度pop
:删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefinedpush
:将参数添加到原数组末尾,并返回数组的长度concat()
方法通过合并(连接)现有数组来创建一个新数组(不影响原数组):
数组索引方法
indexOf():
在数组中查找给定元素的第一个索引 如果存在返回索引不存在返回-1;该函数只返回第一个满足条件的元素索引lastIndexOf()
与功能一样,不过该函数是从数组后面开始查找的,返回元素的索引是正确的索引 如果存在返回索引不存在返回-1
数组转换为字符串
数组方法 | 说明 |
---|---|
toString() | 将数组转换成一个字符串 |
toLocalString() | 把数组转换成本地约定的字符串 |
join() | 将数组元素连接起来以构建一个字符串 |
join()转字符串
//join方式
var a = [1,2,3,4,5]; //定义数组
var s = a.join("_"); //指定分隔符
console.log(s);//输出1_2_3_4_5
**split()**字符串转为数组
字符串对象
根据字符返回位置
-
indexOf
方法可返回某个指定的字符串值在字符串中首次出现的位置。 -
注意
indexOf
只会返回字符串中第一次出现此元素的位置 -
indexOf
默认从开始位置查找元素,也可指定位置开始找var str = 'andy'; console.log(str.indexOf('a')); var str1 = 'andyafnuygjj'; console.log(str1.indexOf('a'));
参数 | 描述 |
---|---|
searchvalue (例如上面的“a”) | 必需,规定需检索的字符串值 |
fromindex (从几号索引开始) | 可选的整数参数,规定在字符串中开始检索的位置. |
根据位置返回字符
var str2 = 'andyjwujjdbjk';
console.log(str2.charAt(3)); // y
console.log(str2.charCodeAt(0)); // 97 , a的ASCII值为97
console.log(str2[0]); // a
字符串操作方法
slice(start, end) 方法
slice() 提取字符串的某个部分并在新字符串中返回被提取的部分。
该方法设置两个参数:起始索引(开始位置),终止索引(结束位置)。
//slice提取
var str="Apple,Banana,Mango"
var res=str.slice(6,12)
console.log(res)//返回值Banana
substr(start,length)
方法
substr() 方法可在字符串中截取从开始下标开始的指定数目的字符。
splice()方法
splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
**注释:**该方法会改变原始数组。
语法arrayObject.splice(位置索引号,数量,可选向数组添加新项目)
replace()方法
replace() 方法用另一个值替换在字符串中指定的值:
replace() 方法不会改变调用它的字符串。它返回的是新字符串。
默认地,replace() 只替换首个匹配:
//replace替换 **默认只匹配首个匹配
var str = "hello g g!";
var n = str.replace("g", "w");
var f=n.toUpperCase()//转为大写
console.log(f)
转换为大写和小写
- 通过
toUpperCase()
把字符串转换为大写: - 通过
toLowerCase()
把字符串转换为小写:
简单数据类型和复杂数据类型
简单数据类型
简单类型(基本数据类型、值类型):在存储时变量中存储的是值本身,包括string ,number,boolean,undefined,null
简单类型传参
函数的形参也可以看做是一个变量,当我们把一个值类型变量作为参数传给函数的形参时,其实是把变量在栈空间里的值复制了一份给形参,那么在方法内部对形参做任何修改,都不会影响到的外部变量。
复杂数据类型
复杂数据类型(引用类型):在存储时变量中存储的仅仅是地址(引用),通过 new 关键字创建的对象(系统对象、自定义对象),如 Object、Array、Date等;
复杂数据类型传参
函数的形参也可以看做是一个变量,当我们把引用类型变量传给形参时,其实是把变量在栈空间里保存的堆地址复制给了形参,形参和实参其实保存的是同一个堆地址,所以操作的是同一个对象。
**:在存储时变量中存储的仅仅是地址(引用),通过 new 关键字创建的对象(系统对象、自定义对象),如 Object、Array、Date等;
复杂数据类型传参
函数的形参也可以看做是一个变量,当我们把引用类型变量传给形参时,其实是把变量在栈空间里保存的堆地址复制给了形参,形参和实参其实保存的是同一个堆地址,所以操作的是同一个对象。