JavaScript引用类型
-
Object类型
创建Object实例的方式:使用new操作符后跟构造函数;使用对象字面量表示法
一般来说,访问对象属性时使用的都是点表示法,JavaScript也可以使用方括号表示法来访问对象的属性
-
Array类型
- 数组的每一项可以保存任何类型的数据,数组的大小是可以动态调整的
- 在使用Array构造函数时可以省略new操作符
- 检测数组:isArray()
- 转换方法
- toString()会返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串
- valueOf()
- toLocaleString()
- join()可以使用不同的分隔符来构建
- 如果数组中的某一项值是null或undefined,则在返回的结果中以空字符串表示
- 栈方法
- push()将参数添加到数组末尾并返回修改后数组的长度
- pop()从数组末尾移除最后一项,减少数组的length值,然后返回移除的项
- 队列方法
- shift()移除数组的首项并返回该项,同时将数组长度减1
- unshift()在数组首部添加任意个项并返回新数组的长度
- 重排序方法
- reverse()反转数组
- sort()默认升序排列,有bug,可以接收一个比较函数作为参数,以便我们指定排序规则
- 操作方法
- concat()创建当前数组副本,将接收到的参数添加到末尾并返回新数组
- slice()接收要返回项的起始和结束位置(不包括结束位置),如果参数为负数,则用数组长度加上该数,如果结束位置小于起始位置,则返回空数组
- splice()可以删除、插入和替换,会改变原数组
-
- 删除:要删除的第一项的位置和要删除的项数
- 插入:起始位置、0(要删除的项数)、要插入的项(用逗号相隔)
- 替换:起始位置、要删除的项数和要插入的项
- 位置方法
- indexOf()从数组开头向后找
- lastIndexOf()从数组末尾向前找
- 返回要查找的项在数组中的位置,没找到都返回-1
- 迭代方法
- every():对数组中的每一项给定函数,如果该函数对每一项都返回true则返回true
- filter():对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组
- forEach():对数组中的每一项运行给定函数,没有返回值
- map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组
- some():对数组中的每一项给定函数,如果该函数对每一项都返回true则返回true
- 缩小方法
- reduce()从第一项开始逐个遍历
- reduceRight()从最后一项开始
- 两个参数:一个在每一项上都要调用的函数(参数包括前一个值、当前值、项的索引和数组对象)、作为缩小基础的初始值(可选)
-
Date类型
- Date.now()返回表示调用这个方法时的日期和时间的毫秒数
- 日期格式化方法
- 日期/时间组件方法
-
RegExp类型
- 三个标志
- g表示全局模式
- i表示不区分大小写模式
- m表示多行模式
- 实例属性
- global
- ignoreCase
- lastIndex
- multiline
- source
- 实例方法
- exec()接收一个参数,即要应用模式的字符串,返回包含第一个匹配项信息的数组(包含两个额外属性index和input)
- test()接受一个字符串参数,在模式与该参数匹配的情况下返回true
- 三个标志
-
Function类型
- 没有重载,会覆盖
- 函数声明与函数表达式。解析器会率先读取函数声明,函数表达式必须等到解析器执行到它所在的代码行才会被解释执行
- 函数内部对象:arguments(类数组对象,包含着传入函数中的所有参数)和rhis
- 函数属性和方法
- length:函数希望接收的命名参数的个数
- prototype
- apply()
- call()
-
基本包装类型
- Boolean
- Number
- String
- 字符方法charAt()和charCodeAt()
- 字符串操作方法
- 字符串位置方法
- trim()删除前置及后缀的所有空格并返回结果
- 字符串大小写转换方法
- 字符串模式匹配方法
- localeCompare()
- fromnCharCodde()
-
单体内置对象
- Global
- URI编码方法:
- encodeURI():不会对本身属于URI的特殊字符编码
- encodeURIComponent():会对任何字符编码
- eval()
- URI编码方法:
- Math
- 属性
- min()和max()
- 舍入方法
- random()返回0到1之间的一个随机数
- 其他方法
- Global
helloujoxia@163.com