JS学习笔记——引用类型

引用类型的值(对象)是引用类型的一个实例。
引用类型是一种数据结构。

引用类型分类:

Object类型
Array类型
Date类型
RegExp类型
Function类型

Object类型

创建Object实例的方式:
1.使用new操作符后很Object构造函数

var person = new Object();
person.name = "Jack";
person.age = 29;

2.对象字面量表示方法

var person = {
	name : "Jack",
	age : 29
}

Array类型

创建数组的基本方式:
1.使用Array构造函数(new操作符可以省略)

var colors = new Array();
var colors = new Array(20);
var colors = new Array("red","blue","green");

2.使用数组字面量表示方法

var colors = ["red","blue","green"];	// 创建一个包含3个字符串的数组
var name = [];		// 创建一个空数组
栈方法

后进先出
ECMAScript为数组专门提供了push()和pop()方法

队列方法

先进先出
提供了push()和shift()方法
unshift()和pop()方法,可以从相反的方向来模拟队列

重新排序方法

reverse()方法会反转数组项的顺序
sort()方法按升序排列数组项

sort()方法可以接受一个比较函数作为参数

function compare(value1, balue2){
	if (value1 < value2){
		return -1;
	} else if (value1 > value2){
		return 1;
	} else {
		return 0;
	}
}
var values = {0, 1, 5, 10, 15};
values.sort(conpare);
alert(values);

降序结果只要交换比较函数返回的值即可

操作方法

concat()方法可以基于当前数组中的所有项创建一个新数组
slice()能够基于当前数组中的一个或多个项创建一个新数组
splice()主要用途是向数组的中部插入项
删除——可以删除任意数量的项
要删除的第一项的位置和要删除的项数
插入——可以向指定位置插入任一项
起始位置、0、要插入的项
替换——可以指定位置插入任意数量的项,且同时删除任意数量的项
起始位置、要删除的项数、要插入的项

Date类型

Date类型使用自UTC(国际协调时间)1970年1月1日午夜(零时)开始,经过的毫秒数来保存日期。
创建一个日期对象`

var now = new Date();

在调用Date构造函数而不传递参数的情况下,新创建的对象自动获得当前日期和时间
如果像根据特定日期和时间创建日期对象,必须传入表示该日期的毫秒数
ECMAScript提供两个方法:Date.parse()和Date.UTC()

RegExp类型

ECMAScript通过RegExp类型来支持正则表达式

var expression = /pettern/flags;

pattern——可以是任何简单或复杂的正则表达式
flags用以标明正则表达式的行为:
g——全局模式
i——不区分大小写模式
m——表示多行模式

Function类型

函数实际上是对象。
每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性方法。由于函数是对象,因此函数名实际上也是一个指向函数对象的指针,不会与摸个函数绑定。

函数声明语法定义:

function sum(num1, num2){
	return num1 + num2;
}

函数表达式定义函数:

var sum = funtion(num1, num2){
	return num1 + num2;
}
没有重载
function addSomeNumber(num){
	return num + 100;
}

function addSomeNumber(num){
	return num + 200;
}

var result = addSomeNumber(100);	// 300
函数声明与函数表达式

解析器会率先读取函数声明,并使其在执行任何代码之前可用;至于函数表达式,则必须等到解析器执行到它所在的代码才会真正被解析执行

函数内部属性

有两个特殊的对象:argument和this

阶乘函数

function factorial(num){
	if (num <= 1){
		return 1;
	} else {
		return num * argument.callee(num - 1);
	}
}

factorial()函数的函数提内,没有在引用函数名factial,这样无论引用函数时用的是什么名字,都可以保证正常完成递归调用。

函数属性和方法

每个函数包含两个属性:length和prototype
length表示函数希望接收的命名参数个数
ECMAScript中的引用类而言,prototype是保存它们所有实例方法的真正所在。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值