一、对象分类
在javascript中,可以将对象分为“内部对象”、“宿主对象”和“自定义对象”三种。
1.内部对象分为本地对象和内置对象
1.1 本地对象
JS中的本地对象包括Number、String、Boolean、Array、Function、Date、Object、RegExp等
Global和Math这两个对象又被称为“内置对象”,这两个对象在脚本程序初始化时被创建,不必实例化这两个对象。
1.2 内置对象
内置对象(built-in object)定义为“由 ECMAScript 实现提供的,在 ECMAScript 程序开始执行时出现”。这意味着开发者不必明确实例化内置对象,它已被实例化了。
2.宿主对象
宿主对象就是执行JS脚本的环境提供的对象。对于嵌入到网页中的JS来说,其宿主对象就是浏览器提供的对象,所以又称为浏览器对象,如IE、Firefox等浏览器提供的对象。不同的浏览器提供的宿主对象可能不同,即使提供的对象相同,其实现方式也大相径庭!这会带来浏览器兼容问题,增加开发难度。浏览器对象有很多,如Window和Document等等。
3.自定义对象
顾名思义,就是开发人员自己定义的对象。JS允许使用自定义对象,使JS应用及功能得到扩充。
二、创建数组的两种方式
-
字面量方式
var arr = [1,"test",true];
-
new Array()
var arr = new Array();
注意:上面代码中arr创建出的是一个空数组,如果需要使用构造函数Array创建非空数组,可以在创建数组时传入参数
参数传递规则如下:
如果只传入一个参数,则参数规定了数组的长度
如果传入了多个参数,则参数称为数组的元素
三、数组对象
3.1 创建数组的两种方式
-
字面量方式
var arr = [1,"test",true];
-
new Array()
var arr = new Array();
注意:上面代码中arr创建出的是一个空数组,如果需要使用构造函数Array创建非空数组,可以在创建数组时传入参数
参数传递规则如下:
如果只传入一个参数,则参数规定了数组的长度
如果传入了多个参数,则参数称为数组的元素
3.2 数组对象的方法sort
sort() | |
---|---|
功能描述 | 对数组的元素进行排序(默认是从小到大来排序 并且是根据字符串来排序的) |
语法 | array.sort(sortfunction) |
参数 | sortfunction:可选。规定排序顺序。必须是函数。 |
返回值 | 排序后新数组 |
是否改变原数组 | 改变 |
var ary1 = [32,44,23,54,90,12,9];
ary1.sort(function(a,b){
// return a-b; // 结果[9, 12, 23, 32, 44, 54, 90]
// return b-a; // 结果[90, 54, 44, 32, 23, 12, 9]
})
console.log(ary1);
注意:sort在不传递参数情况下,只能处理10以内(个位数)数字排序
三、字符串对象
3.1 String对象方法
创建字符串对象
var str = new String('Hello World');
// 获取字符串中字符的个数
console.log(str.length);
四、字符串对象的常用方法
需要注意的是字符串所有的方法,都不会修改字符串本身(字符串是不可变的),操作完成会返回一个新的字符串。
4.1 字符方法
1. charAt()
2. charCodeAt()
charCodeAt() | |
---|---|
功能描述 | 可返回指定位置的字符的 Unicode 编码() |
语法 | string.charCodeAt(index) |
参数 | index -- 字符的索引。 |
返回值 | 返回在指定的位置的字符的 Unicode 编码。 |
3. fromCharCode()
fromCharCode() | |
---|---|
功能描述 | 可接受一个指定的 Unicode 值作为参数,然后返回相应字符 |
语法 | String.fromCharCode(number1,number2,....numberX ) |
参数 | 必需。一个或多个 Unicode 值,即要创建的字符串中的字符的 Unicode 编码 |
返回值 | 返回代表 Unicode 编码的字符。 |
charAt() | |
---|---|
功能描述 | 返回指定索引处的字符。索引范围为从 0 到 length- 1 |
语法 | string.charAt(index) |
参数 | index -- 字符的索引。 |
返回值 | 返回指定索引处的字符。 |
4.2 字符串操作方法
1.concat()
concat() | |
---|---|
功能描述 | 用于连接两个或多个字符串。 |
语法 | string.concat(string1, string2, ..., stringX) |
参数 | 必需。将被连接为一个字符串的一个或多个字符串对象。 |
返回值 | 两个或多个字符串连接后生成的新字符串。 |
2.slice()
slice() | |
---|---|
功能描述 | 提取字符串的片断,并在新的字符串中返回被提取的部分。 |
语法 | slice(start,end) |
参数 | start必须. 要抽取的片断的起始下标。第一个字符位置为 0 end可选。 紧接着要截取的片段结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。 |
返回值 | 提取的字符串 |
3.substring()
substring() | |
---|---|
功能描述 | 用于提取字符串中介于两个指定下标之间的字符。 |
语法 | substring(from,to) |
参数 | from必需。一个非负的整数,规定要提取的子串的第一个字符在 string Object 中的位置。to可选。一个非负的整数,规定要提取的子串结束位置的下标(不包含)。 如果省略该参数,那么返回的子串会一直到字符串的结尾。 |
返回值 | 提取后生成的新字符串。 |
4.substr()
substr() | |
---|---|
功能描述 | 可在字符串中抽取从 开始 下标开始的指定数目的字符。 |
语法 | substr(start,length) |
参数 | start必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。length可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。 |
返回值 | 抽取从 开始 下标开始的指定数目的字符 |
5.split()
split() | |
---|---|
功能描述 | 用于把一个字符串分割成字符串数组。 |
语法 | split(separator,limit) |
参数 | separator可选。字符串或正则表达式,从该参数指定的地方分割 string Object。 limit*可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。 |
返回值 | 一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 string Object 分割成子串创建的。返回的数组中的字串不包括 separator 自身 |
4.3 检索方法
1. includes()
includes() | |
---|---|
功能描述 | 用于判断字符串是否包含指定的子字符串。 |
语法 | array.includes(item, [start]) |
参数 | item必需,要查找的字符串。start:可选,设置从那个位置开始查找,默认为 0。 如果该参数为负数,将按照索引为0开始检索 |
返回值 | 如果找到匹配的字符串返回 true,否则返回 false。 |
2. indexof()
indexOf() | |
---|---|
功能描述 | 返回指定内容在元字符串中的第一次出现的位置。 |
语法 | indexOf(item,[start]) |
参数 | item 必需,规定需检索的字符串值,start可选的,整数参数。规定在字符串中开始检索的位置。 它的合法取值是 0 到 string Object.length - 1。如省略该参数,则将从字符串的首字符开始检索。 如果该参数为负数,将按照索引为0开始检索。 |
返回值 | 返回查找指定字符串第一次出现的位置,如果没找到匹配的字符串则返回 -1。 |
3.lastIndexOf()
lastIndexOf() | |
---|---|
功能描述 | 该方法将从后向前检索字符串,返回是从起始位置 (0) 开始计算子字符串最后出现的位置。 |
语法 | lastIndexOf(item,[start]) |
参数 | item必需。规定需检索的字符串值。start可选的整数参数。规定在字符串中开始检索的位置。 它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的最后一个字符处开始检索。 如果该参数为负数,将按照索引为0开始检索。 |
返回值 | 返回查找的字符串最后出现的位置,如果没有找到匹配字符串则返回 -1。 |
4.search()
search() | |
---|---|
功能描述 | 方法用于检索字符串中指定的子字符串,或与正则表达式相匹配的子字符串,在字符串中首次匹配项的索引。 |
语法 | search(searchvalue) |
参数 | 必须。查找的字符串或者正则表达式。 |
返回值 | 如果匹配成功,则 search() 返回在字符串中首次匹配项的索引;否则,返回 -1 。 |
5. 替换方法replace()
replace() | |
---|---|
功能描述 | 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 |
语法 | replace(searchvalue,newvalue) |
参数 | searchvalue必需。规定子字符串或要替换的模式的 RegExp 对象。 请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。 newvalue必需。一个字符串值。规定了替换文本或生成替换文本的函数。 |
返回值 | 一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。 |
4.4 去除空白trim()
trim() | |
---|---|
功能描述 | trim() 方法用于删除字符串的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等 |
语法 | trim() |
参数 | 无 |
返回值 | 返回移除头尾空格的字符串。 |
4.5 大小写转换方法
1.toUpperCase()
toUpperCase() | |
---|---|
功能描述 | 所有小写字符全部被转换为大写字符 |
语法 | string.toUpperCase() |
参数 | 无 |
返回值 | 生成的新字符串。 |
2.toLowerCase()
toLowerCase() | |
---|---|
功能描述 | 所有大写字符全部被转换为小写字符 |
语法 | string.toLowerCase() |
参数 | 无 |
返回值 | 生成的新字符串。 |
4.6 总结String 对象操作方法
方法 | 描述 |
---|---|
charAt() | 返回在指定位置的字符。 |
charCodeAt() | 返回在指定的位置的字符的 Unicode 编码。 |
String.fromCharCode() | 将 Unicode 编码转为字符。 |
concat() | 连接两个或更多字符串,并返回新的字符串。 |
slice() | 提取字符串的片断,并在新的字符串中返回被提取的部分。不包含结束的索引 |
substring() | 提取字符串中两个指定的索引号之间的字符。 |
substr() | 从起始索引号提取字符串中指定数目的字符。 |
split() | 把字符串分割为字符串数组。 |
includes() | 查找字符串中是否包含指定的子字符串。 |
indexOf() | 返回某个指定的字符串值在字符串中首次出现的位置。 |
lastIndexOf() | 从后向前搜索字符串,并从起始位置(0)开始计算返回字符串最后出现的位置。 |
search() | 查找与字符串或正则表达式相匹配的字符。 |
replace() | 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 |
trim() | 参数值无。去除字符串前后的空白。 |
toLowerCase() | 把字符串转换为小写。 |
toUpperCase() | 把字符串转换为大写。 |
未完