javascript:引用类型
一:使用对象
引用类型的值(对象)是引用类型的实例,引用类型是一种数据结构,将对象的数据和功能放在一起,javascript没有类的概念。
1:原生的引用类型
- Object类型
创建Object实例有两种方式:第一:object构造函数,new 第二:对象字面量
- Array类型
1)创建Array实例,第一:构造函数,第二:对象字面量。
2)检测数组
Array.isarray(实例)
3)转换方法
toString() toLocaleString() valueOf() join()
4) 排序方法
reverse() sort()
5) 重组方法
concat() slice() splice()
6) 位置方法
indexof() lastindexof()
7) 迭代方法,均有三个参数:数组项的值,索引,数组对象本身
every() map() some() filter() foreach()
8) 缩小方法,以下方法都有四个参数:前一个值,当前值,索引,数组对象本身,reduce方法可用于数组项的求和
reduce() reduceRight()
- RegExp正则表达式
RegExp实例创建方式:第一,正则表达式字面量,第二:构造函数。这两种方式的区别,正则表达式字面量始终共享同一个实例,而构造函数创建的实例每次都会新建一个实例。
1)实例属性
global属性--布尔值,是否是g标志
ignoreCase属性--布尔值,是否是i标志,
multiline属性--布尔值,是否是m标志
lastIndex属性--开始搜索的下一个匹配项的字符位置
source--正则表达式的字符串表示
2)实例方法
exec()---为捕获组设计的,返回的结果是array实例,包含两个属性input(字符串),和index(第一个匹配项在字符串中的位置) ,数组的第一项是与整个模式匹配的字符串
test()----判断字符串是否与模式匹配,返回值为布尔值
- Function类型
函数创建方法:第一,函数声明function,第二,函数表达式。两种的区别:函数声明会有函数声明提前功能,因此可以在函数定义之前进行函数的调用,而表达式不会。
1)作为值的函数,作为另一个函数的参数
function func1(func2,argu2),该函数的参数argu2将作为函数func2的参数。
2)函数作为另一个函数的返回值
function createComparisionFunction(propertyName){
return function(obj1,obj2){
var value1 = obj1[propertyName];
var value2 = obj2[propertyName];
if(value1 < value2){
return -1;
}
else if(value1 == value2){return 0;}
else{return 1;}
}
}
3) 函数内部属性
在函数内部有两个特殊的对象,一个是arguments对象,一个是this对象。
arguments对象用于保存函数的命名参数,有个属性callee,arguments.callee,是个指针,指向拥有arguments对象的函数。
this对象是函数执行环境,全局函数,this值是windows对象。
另一个函数对象属性是caller,caller属性保存中调用当前函数的函数的引用。
4)函数属性和方法
函数属性:length和prototype。length是指函数命名参数的个数,prototype(原型)保存着函数实例方法的真正所在。
函数方法:apple()和call()方法,这两个方法的作用是在特定的作用域中调用函数,也就是修改this的值,扩充函数作用域。这两个方法都有两个参数,第一个参数是要运行函数的作用域,this的值,第二个参数都是要指定函数的参数,但是有所不同,apply方法是需要参数数组,call方法需要参数项,将参数一个个加进去。
函数的另一个方式是bind(对象)方法,该方法作用是创建函数实例,函数的this值会被绑定到bind的参数值上。
二:创建并操作数组
三:理解基本的javascript类型
四:使用基本类型和基本包装类型