一、数组对象
数组对象 可以使用new Array或者**字面量“[ ]”**来创建,并且可以通过调用数组对象提供的一些方法来实现对数组的操作,比如添加或者删除数组元素,数组排序,数组索引等等.
1、数组类型检测
在开发中,有时候需要检测变量的类型是否为数组,数组检测有两种常见的方式:分别是使用instanceof运算符和使用Array.isArray()方法;
示例代码
添加或删除数组元素
数组对象提供了添加和删除元素的方法,可以实现在数组的末尾或开头添加新的数组元素,或者在数组的末尾或开头一处数组元素
方法名 | 功能描述 | 返回值 |
push(参数1…) | 数组末尾添加一个或多个元素,会修改原数组 | 返回数组的新长度 |
unshift(参数1…) | 数组开头添加一个或多个元素(把数组长度-1,无参数),会修改原数组 | 返回数组的新长度 |
pop() | 删除数组的最后一个元素,若是空数组则返回undefined,会修改原数组 | 返回删除的元素的值 |
shift() | 删除数组的第一个元素,若是空数组则返回undefined,会修改原数组 | 返回第一个元素的值 |
示例代码
[案例]筛选数组
要求: 在包含工资的数组中,剔除工资达到2000或以上的数据,把小于2000的数重新放到新的数组里面!
2、数组排序
数字对象提供了数组排序的方法,可以实现数组元素排序或者颠倒数组元素的顺序等
排序方法
方法 | 功能描述 |
reverse() | 颠倒数组中元素的位置,该方法会改变原数组,返回新数组 |
sort() | 对数组的元素进行排序,该方法会改变原数组,返回新数组 |
示例代码
注意: 如果调用sort()方法时没有传入参数,则按照字符编码的顺序进行排序
数组索引
在开发中,如果要查找指定的元素在数组中的位置,中科院利用Array对象提供的检索方法,、
检索方法
方法名 | 方法功能描述 |
indexOf() | 返回在数组中可以找到给定值的第一个索引,如果不存在,则返回-1 |
lastIndexOf() | 返回指定元素在数组中的最后一个的索引,如果不存在则返回-1 |
示例代码
[案例]数组去除重复元素
数组转换成字符串
方法 | 功能描述 |
toString() | 把数组转换为字符串,逗号分隔每一项 |
join(‘分隔符’) | 将数组的所有元素连接到一个字符串中 |
示例代码:
其他方法
方法 | 功能描述 |
fill() | 用一个固定值填充数组中指定下标范围内的全部元素 |
splice() | 通过删除或替换现有元素或者原地添加新的元素来修改数组,返回被删除项目的新数组 |
slice() | 数组截取,参数为slice(begin, end),包含begin,但不包含end,返回被截取项目的新数组 |
concat() | 连接两个或多个数组,不影响原数组,返回一个新数组 |
示例代码:
练习:var url=’http://www.martinhan.com/login?name=zs&age=18’
最后输出结果是:{name:zs;age:18}
二、字符串对象
在JavaScript中,字符串对象提供了一些用于对字符串进行处理的属性和方法,可以很方便地实现字符串的查找,截取,替换,大小写转换等操作
字符串对象的使用
字符串对象使用new String()来创建,在String构造函数中传入字符串,这样就会在返回的字符串对象中保存这个字符串。
示例代码
根据字符返回位置
字符串对象对于检索元素的方法
方法 | 功能描述 |
indexOf(‘要查找的值’,开始的位置) | 返回指定内容在原字符串中的位置,如果找不到就返回 -1;开始的位置是index 索引号;,开始参数2可选,规定在字符串中开始检索的位置。它的合法取值是 0 到的位置)stringObject.length - 1。如省略该参数,则将从字符串的最后一个字符处开始检索。 |
lastIndexOf(‘要从后往前找, | 从后往前找,只找第一个匹配的,如果没有找到匹配字符串则返回 -1;参数2可选,规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。 |
示例代码
案例
根据位置返回字符
字符串对象用于获取某一个字符的方法:
成员 | 作用 |
charAt(index) | 获取index位置的字符,位置从0开始计算 |
charCodeAt(index) | 获取index位置的字符的ASCII码 |
str[index] | 获取指定位置处的字符(HTML5新增)和charAt等效 |
示例代码:
[案例]统计出现最多的字符和次数
字符串操作方法
字符串对象用于截取和连接和替换字符串的方法
方法 | 作用 |
concat(str1,str2, str3…) | concat() 方法用于连接两个或多个字符串。拼接字符串,等效于+,+更常用 |
slice(start,[end]) | 该方法没有改变原有字符串,会返回连接两个或多个字符串新字符串。截取从start位置到end(不包含end)位置之间的一个子字符串可提取字符串的某个部分,并以新的字符串返回被提取的部分 |
substring(start[,end]) | 截取从start位置到end位置之间的一个子字符串,基本和slice相同,但是不接收负值 |
substr(start[,length]) | 截取从start位置开始到length长度的子字符串从起始索引号提取字符串中指定数目的字符 |
toLowerCase() | 获取字符串的小写形式 |
toUpperCase() | 获取字符串的大写形式 |
split([separator[,limit]) | 使用separator分隔符将字符串分隔成数组,limit用于限制数量separator可选。limit可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。 |
replace(str1,str2) | 使用str2替换字符串中的str1,返回替换结果,只会替换第一个字符 |
示例代码:
[案例]判断用户名是否合法
要求:长度在3~10的范围内,不允许出现敏感词admin的任何大小写形式
值类型和引用类型
在JavaScript中,基本数据类型(字符串型,字符型,数字型,布尔型,undefined,null)又被称为值类型,复杂数据类型(对象)又被称为引用类型
引用类型:变量中保存的是一个引用的地址,当对变量进行赋值时,并不是将对象复制了一份,而是将两个变量指向了同一个对象的引用
示例代码:
当一个对象只被一个变量引用时,如果中国变量又被重新赋值,则该对象就会变成没有任何变量引用的取款,这个时候就会由JavaScript的垃圾回收机制自动释放
示例代码: