引用类型是JavaScript中很重要的内容。引用类型是一种数据结构,用于将数据和功能组织在一起。它描述的是一类对象所具有的属性和方法。Object是一个基础类型,Array是数组类型,Date是日期类型,RegExp是正则表达式类型,等。
曾经名不经传的JavaScript随着AJAX的流行而身价倍增,现在JavaScript不再仅仅是WEB开发中一个可有可无的辅助工具,甚至有了专门属于它的职位“JavaScript工程师”,那怕你仅仅是一名WEB后台开发程序员,你都必须了解JavaScript,至少在一些相关招聘职位要求上你可以看到“熟悉JavaScript优先”的字眼。甚至我还要告诉你,你将可以用JavaScript开发桌面软件,这得益于Adobe AIR的另外一种开发模式,即用HTML+CSS+JavaScript开发AIR。
常应用于存储和传输数据。比如存储:
创建的第二种方式:(在创建时,属性名也可以是字符串格式,即:可以给属性名加引号。)
1. 创建:
2.取出属性值:person["name"];或者:person.name;
同一个数组可以保存任意类型的数据(大杂烩)。1.数组可以动态调整(多加一个数据,它自己就增长一个长度,不是死的。)。
2.创建:
3.动态调整示例:
4.检测数组:Array.isArray(value);
5.用join()把数组转换成有分隔符的字符串:
6.可以像栈一样使用数组(pop()出来,push()进去)。
7.可以像队列一样使用数组。(结合shift()和push()):
8.排序。
1.reverse()
翻转数组顺序;(返回经过排序后的数组)2.sort()
从小到大排序。但是是按字符串排序,不是按数字排序:(返回经过排序后的数组)。要想按你预期的方式排序,可以给sort()里面加一个比较函数当作参数:
简化版本的比较函数(sort只关心返回的是正数、负数还是0):
9.对数组的操作:联结、切片、拼接。
1.联结
:使用concat,记忆:concat-->concatenate:连结,连锁。举例:
2.切片
。使用slice,记忆:slice翻译:切片。举例:3.拼接
。splice。功能强大。可以删除、插入、替换。1.
删除任意数量的项:比如:splice(0,2),删除第0,1项(半封闭区间)(返回删除项)。2.
指定位置插入任意数量的项:比如:splice(2,"周杰伦","王尼玛"),从第2个位置开始插入周杰伦、王尼玛两项。3.
指定位置插入任意数量的项且同时删除任意数量的项。比如:splice(2,1,"王尼玛"),从第2个位置删除1项,然后开始插入周杰伦、王尼玛两项。10.位置方法:indexOf,lastIndexOf;
11.迭代方法:
分为:全部合格才通过、任意一个合格就通过、过滤部分渣渣,一对一映射,迭代查询,缩减。1.全部合格才通过:
上例中每一项都大于2才返回true。
2.任意一个合格就通过:
上例中,有一个大于2就返回true。
3.过滤部分渣渣:
上例中,把大于2的都过滤掉。
4.一对一映射:
上例中,给每一项都乘以2.
5.迭代:使用for-each。
6.缩减:reduce。
累加求和返回,5项缩为1项。
1.
var expression=/ pattern / flags;
2.flags分三种
:g(global全局模式,应用于所有字符串)、i(case-insensive,忽略字母大小写)、m(multiline,多行模式,一行检验完了接着下一行。)。举例:3.
模式中所有的元字符必须转义,元字符:( { [ \ ^ $ | ) ? * + . ] }4.Function类型
1.
每个函数都是Function类型的实例,而且与其他引用类型一样,都有属性和方法。2
.函数的两种定义方法:方法1:
方法2:
3.函数没有重载。
上例中,a是基本类型,但是a可以调用substring方法,是因为,后台自动完成a的包装操作,创建String类型的一个实例。Boolean,Number也类似。
1.所有全局作用域中定义的函数、变量,都是Global对象的方法,比如:parseInt,isNaN等。 2.eval()方法也是Global对象的方法,它负责解析javascript。 3.Math对象是保存数学公式和相关信息的。它有很多方法, 如:min求最小值,max求最大值,ceil()向上取整,floor向下取整,round四舍五入,random取随机数。 ps:引用类型理解:变量的交换等于把现有一间店的钥匙(变量引用地址)复制一把给了另外一个老板,此时两个老板同时管理一间店,两个老板的行为都有可能对一间店的运营造成影响。
引用类型例子