Loading

JS引用类型

引用类型的值(对象)是引用类型的一个实例。在JS中,引用类型是一种数据结构,用于将数据和功能组织在一起。在其它面向对象语言中常被成为类,但在JS中,由于不具备传统面向对象语言所支持的类和接口等基本结构,所以称其为引用类型更合适。

 

一、Object类型

1. 创建:var a = new object(); 或 var a = {x:"x", y:"y"}; 或 var a = {};

 

二、Array类型

1. 创建:var myArray1 = new Array(); 或 var myArray2 = [1, 2, 3]

2. 读取:下表索引法

3. 实例属性:length返回数组项数(可读可写)

4. 方法:

(1)检测数组:Array.isArray()方法,传入被检测对象作参数

(2)转换方法:toLocaleString()、toString()、valueOf()

(3)栈方法:push()、pop()

(4)队列方法:push()、shift()

(5)重排序方法:reverse()、sort()

(6)操作方法:concat()、slice()、splice()

(7)位置方法:indexOf()、lastIndexOf()

(8)迭代方法:every()、filter()、forEach()、map()、some()

(9)归并方法:reduce()、reduceRight()

 

三、Date类型

1. 创建:var now = newDate()

(1)无参数传入时新创建的对象自动获得当前日期时间;

(2)如果想创建指定日期,必须传入该日期的毫秒数。为简化这一过程,有两个方法根据指定日期返回毫秒数:1)Date.parse() :接收一个表示日期的字符串参数。 2)Date.UTC():接受若干参数,即年、月(基于0)、日、时、分、秒,如果省略其他参数,则默认为0。

2. 方法:

(1)转换方法:toLocaleString()、toString()、valueOf()

(2)日期格式化方法:toDateString()、toTimeString()、toLocaleDateString()、toLocaleTimeString()、toUTCString()

(3)日期/时间组件方法:直接取得和设置日期值中特定部分的方法

 

四、RegExp类型

1. 创建:

(1)方式一:var pattern1 = / pattern / flags 

(2)方式二:var pattern2 = new RegExp("pattern", "flags")

其中,pattern部分为正则表达式,flags部分为匹配模式(包括g全局、i不区分大小写、m多行)。

2. 实例属性:global、ignoreCase、lastIndex(下一个匹配项的字符位置,从0算起)、multiline、source(返回正则表达式字符串表示,按字面量形式)

3. 实例方法:

(1)exec():接收要应用模式的字符串,然后返回一个匹配信息的数组,匹配失败则返回null。返回的数组第一项是整个模式匹配的字符串,其他项是与模式中捕获组匹配的字符串,另外还包含两个属性:index表示匹配项在字符串中的位置,input表示应用正则表达式的字符串。

是否设置g标志对exec()的影响:对exec()方法而言,每次只会返回一个匹配项,但如果设置了g标志,则每次匹配都会从上次匹配成功的位置开始(lastIndex属性增加),如果未设置g标志,就只能匹配第一项。

(2)test():接收要应用模式的字符串,匹配成功返回true,匹配失败返回false。

(3)toLocaleString()、toString():返回正则表达式的字面量

         valueOf():返回正则表达式本身

4.构造函数属性(静态属性):

基于所执行的最近一次正则表达式操作而变化。每个属性有两种访问方式,长属性名和短属性名。

长属性名 短属性名 说明
input $_ 最近一次要匹配的字符串
lastMatch $&  最近一次的匹配项
lastParen $+  最近一次匹配的捕获组 
leftContext  $` 

input字符串中lastMatch之前的文本 

multiline  $*  布尔值,表示是否所有表达式都使用多行模式 
rightContext  $'  Input字符串中lastMatch之后的文本 

 

五、Function类型

函数是对象,函数名是指针。

1. 创建:函数声明语法function func(args) {statements  return;} 等价于 var func = function(args) {statements  return;}  或者 var func = new Function("args","return ... ");

2. 函数声明和函数表达式的区别:函数声明会被解析器率先读取,函数表达式必须等到解析器执行到它所在的代码行。这会影响什么时候可以通过变量访问函数。

3. 函数可以作为值来使用,即可传入函数名做参数,也可返回函数。

4. 函数内部属性:函数内部有两个特殊的对象——arguments和this。其中arguments保存函数参数(arguments.callee是一个指针,指向拥有这个arguments对象的函数),this引用的是函数执行的环境对象。

5. 函数属性:length表示函数希望接收的命名参数的个数,prototype保存函数所有实例方法(不可枚举)。

6. 函数方法:apply()、call(),这两个方法在特定的作用域调用函数,实际上等于设置函数体内this对象的值。区别于参数而不同,第一个参数都是在其中运行函数的作用域,但apply()第二个参数为参数数组,call()明确传入每一个参数。它们真正的强大之处是能够扩充函数赖以生存的作用域。

 

六、基本包装类型

1. 3个基本包装类型:Boolean、Number、String对应各自的基本类型值,每当读取一个基本类型值是,后台会自动创建一个对应的基本包装类型的对象,并在当行代码执行结束后销毁这个实例对象。

2. 显式地创建基本包装类型的对象(不常用):var obj = new Number("25");

3. Boolean类型:注意区分基本类型的布尔值与Boolean对象之间的区别——一个是基本类型值,一个是对象。

4. Number类型:valueOf()、toLocaleString()和toString()、toFixed()、toExponential()、toPrecision()

5. String类型:length属性、charAt()、concat()、slice()、substring()、indaexOf()、lastIndex()、trim()、toLowerCase()、toUpperCase()、match()、search()、repalce()、split()、localeCompare()、fromCharCode()

 

七、单体内置对象

在程序执行前就已经存在了的对象。

1. Global对象

(1)eval()方法:用来解析参数代码字符串

2. Window对象

3. Math对象

(1)属性:多是一些数学计算的特殊值。包括E、LN10、LN2、LOG2E、LOG10E、PI、SQRT1_2(1/2的平方根)、SQRT2

(2)方法:min()和max()、ceil()、floor()、round()、random()等

posted @ 2018-08-23 12:08  美味的糯米  阅读(341)  评论(0编辑  收藏  举报