5.数组对象
JavaScript中的数组对象可以使用new Array或自变量"[]"来创建。
5.1数组类型检测
数组类型检测有两种:instanceof运算符和使用Array.isArray()方法。
示例代码:
var arr=[];
var obj={};
//第一种方法
console.log(arr instanceof Array);//输出结果:true
console.log(obj instanceof Array);//输出结果:false
//第二种方法
console.log(Array.isArray(arr));//输出结果:true
console.log(Array.isArray(obj));//输出结果:false
5.2添加或删除数组元素
JavaScript数组对象提供了添加或删除元素的方法,可以实现在数组的末尾或开头添加新的数组元素,或在数组的末尾或开头移出数组元素。
示例代码
注意:
1 push()和unshift()方法的返回值是新数组的长度,而pop()和shift()方法返回的是移出的数组元素。
5.5.3筛选数组
案例需求:要求在包含工资的数组中,剔除工资达到2000或以上的数据,把小于2000的书重新放到新的数组里面。
5.4排序方法
1:reverse():颠倒数组元素的位置
示例代码:
// sort: 如果调用该方法时没有使用参数,按照字符编码的顺序进行排序。
var arr1 = [1, 4, 5, 6, 73, 32, 22, 15];
// 不传参数的情况
console.log(arr1.sort());//输出的结果为:[1, 15, 22, 32, 4, 5, 6, 73]
5.5.5数组索引
1.indexOf() :返回在数组中可以找到给定值的第一个索引,如果不存在,则返回-1
2.lastIndexOf() :返回指定元素在数组中的最后一个的索引,如果不存在则返回-1
--参数1:要查找的元素
--参数2:开始查找的位置
--注意:如果第二个参数是-1表示从最后一个元素开始查找,-2表示从倒数第二个元素开始查找,以此类推。
lastlndex()
--如果改制大于或等于数组的长度,则整个数组会被查找
--如果为负值,将其视为从数组末尾向前的偏移。即使该值为负,数组任然会被从后向前查找。
--如果该值为负时,其绝对值大于数组长度,则方法返回-1,技术组不会被查找。
5.6、案例:数组去重
案例需求:要求在一组数据中,去除重复的元素
5.7、数组转换为字符串
在开发中,可以利用数组对象的join()和toString()方法,将数组转换为字符串。方法如下:
示例代码: toString()
5.8、其他方法
JavaScript还提供了很多其他常用的数组方法。例如,填充数组、连接数组、截取数组元素等。方法如下:
注意: slice(和concat()方法在执行后返回一个新的数组,不会对原数组产生影响,剩余的方法在执行后皆会对原数组产生影响
示例代码: fill 参数:value start end value:用来填充数组元素的值 start:基于零的索引,从此开始填充,转换为整数 end:基于零的索引,在此结束填充,转换为整数。fill填充到但不包含end索引
splice 参数:start deleteCountitem1.. start:执行修改的开始位置(从0计数) deletecount:整数,表示要移除的数组元素的个数
item1:要添加进去数组的元素
slice 参数:begin end begin:从该索引开始提取原数组元素(包含) end:在该索引处结束提取原数组元素(不包含)
concat
6、字符串对象
6.1、字符串对象的使用
字符串对象使用newString()来创建,在String构造函数中传入字符串,这样就会在返回的字符串对象中保存这个字符串
语法:
6.2、根据字符返回位置
字符串对象提供了用于检索元素的属性和方法,字符串对象的常用属性和方法如下:
示例代码:
注意: indexOf和lastlndexOf都区分大小写
案例代码: 案例需求:要求在一组字符串中,找到所有指定元素出现的位置以及次数。字符串为'Hello World,HelloJavaScript'。
6.3、根据位置返回字符
字符串对象提供了用于获取字符串中的某一个字符的方法。方法如下:
示例代码:
6.4、案例:统计出现最多的字符和次数
案例需求:使用charAt方法通过程序来统计字符串中出现最多的字符和次数
6.5、字符串操作方法
字符串对象提供了一些用于截取字符串、连接字符串、替换字符串的属性和方法。字符串对象的常用属性和方法如下:
示例代码:
6.6、案例:判断用户名是否合法
案例需求:用户名长度在3~10范围内,不能出现敏感词admin的任何大小写形式
6.7、值类型与引用类型
在JavaScript中,简单数据类型(如字符串型、数字型、布尔型、undefined、null)又称为值类型,在存储时,变量中存储的是值本身,因此叫做值类型 复杂数据类型(对象)又称为引用类型 引用类型的特点是,变量中保存的仅仅是一个引用的地址,当对变量进行赋值时,并不是将对象复制了一份,而是将两个变量指向了同一个对象的引用
示例代码:
字符串的不可变指的是里面的值不可变,看上去可以改变内容,其实是地址变了,新开辟了一个内存空间
案例代码: 代码中的obj1和obj2指向了同一个对象
上述代码运行后,obj1和obj2两个变量引用了同一个对象,此时,无论是使用obj1操作对象还是使用 obj2操作对象,实际操作的都是同一个对象
当obj1和obj2两个变量指向了同一个对象后,如果给其中一个变量(如obj1)重新赋值为其他对象,或者重新赋值为其他值,则obj1将不再引用原来的对象,但obj2仍然在引用原来的对象
注意:
当一个对象只被一个变量引用的时候,如果这个变量又被重新赋值,则该对象就会变成没有任何变量引用的情况,这时候就会由JavaScript的垃圾回收机制自动释放 如果在函数的参数中修改对象的属性或方法,则在函数外面通过引用这个对象的变量访问时的结果也是修改后的
以上就是数组方法和字符串方法。