第五章 引用类型
引用类型是一种数据结构,用于将数据结构和功能组织在一起,也被称之为类。(但一般不这么叫)
5.1 Object 类型
创建Object 类型:
1、var o = new Object()
o.name =
o.age =
2、 var person ={
name: ,
age :
}
5.2 Array 类型 typeof - 也是 object instanceof Array - true
js Array与其他语言不通:js的Array可以保存任何类型的数据。[1,"2",{},true]
转换方法:
push()
pop() 长度会-1
shift() 长度会-1
unshift()
sort() 方法
取部分 slice(start) slice(start,end)
插入 spice(start,delete_length,insertdata,insertdata,insertdata....);
删除 spice(start,length)
5.3 Date 类型 typeof - 也是 object instanceof Date - true
ECMAScript 提供了两个日期方法:Date.parse() Date.UTC()
RegExp 类型
var expression = /pattern/flags
flags-[g,i,m]
g- 全局模式
i-不区分大小写
m-表示多行,会检查下一行。
RegExp实例属性
global-是否设置了g标识
ignoreCase-是否设置了i标识
lastIndex-开始搜索下一个匹配项的字符为止,从0算起
multiline-是否设置了m标识
source-正则表达式的字符串表示。
RegExp 实例方法
RegExp对象的主要方法是exec(),该方法是专门为捕获组而设计的,exec()接受一个参数,即要应用模式的字符串,然后返回包含第一个匹配项信息的数组,或者没有匹配项则返回null;
返回的数组是Array的实例,但是包含两个额外的属性:index和input. 其中index表示匹配项在字符串中的位置,而input表示应用正则表达式的字符串。
第二个方法: test()-接受一个字符串参数,在模式与该参数匹配的情况下返回true,否则返回false。如下:
5.5 Function 类型
5.5.1 函数重载问题
5.5.2 函数声明与函数表达式
5.5.3 作为值得函数
函数内部属性
在函数内部有两个特殊的对象:arguments 和 this。
arguments的主要用途是保存函数参数,但该对象还有一个名叫callee的属性,只想拥有这个arguments对象的函数;
this - 引用的是函数据以执行操作的对象,或者this是函数在执行时所处的作用域
函数属性和方法:length 和prototype| call apply
length 是表示函数希望接受的参数个数
prototype 是保存所有实例方法的真正所在。
每个函数都包含两个非集成而来的方法:call 和 apply。这两个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值。
apply () 方法接受两个参数:一个是在其中运行函数的作用域,第二个是Array的实例,也可以是arguments对象
call () 方法参数:第一个参数是作用域,第x个:要全部列出来。
真正强大之处是能够改变作用域: