引用类型
JavaScript高级程序设计的第五章。讲解了跟对象相关的东西。
Date类型
Date类型,是基于Java的java.util.Date构建的(怪不得觉得用起来很顺手)。
Date类型使用自UTC 2017年1月1日零时开始经过的毫秒数来保存日期。Date类型保存的日期能够精确到1970年1月1日之前或折后的285616年。
创建一个Date对象, 可以这么操作:
1 | var now = new Date(); |
该对象将获得当前的日期和时间。
若想指定时间和日期创建Date对象,则需要传入表示该日期的毫秒数。为了简化计算过程,ECMAScript提供了:Date.parse(), Date.UTC()方法。
Date.parse
eg:
1 | var someDate = new Date(Date.parse("May 25, 2018")); |
当然,如果直接把表示日期的字符串,传入Date构造函数,他在后台也会调用Date.parse()函数。
**Date.UTC:**参数分别为年份、基于0的月份、月中的某一天、小时数、分钟、秒及毫秒。
**必须参数:**年份、月份
eg:
1 | var y2k = new Date(Date.UTC(2000, 0)); |
当然,如果直接把Date.UTC()需要的参数,传入Date构造函数,他在后台也会调用Date.UTC()函数。
ECMAScript 5 添加了Date.now()方法,返回表示调用这个方法时的日期和时间的毫秒数。这个方法简化了使用Date对象分析代码的工作。
1 | var start = Date.now(); |
日期格式化方法
1.toDateString(): 以特定于实现的格式显示星期几, 月, 日和年
2.toTimeString(): 以特定于实现的格式显示时, 分, 秒和时区
3.toLocaleDateString(): 以特定于地区的格式显示星期几, 月, 日和年
4.toLocalTimeString(): 以特定于地区的格式显示星期几, 月, 日和年
5.toUTCString(): 以特定于实现的格式完整的UTC日期。
日期/时间组件方法
1.getTime(): 返回表示日期的毫秒数
2.setTime(毫秒)
3.getFullYear(): 取得4位数年份
4.setFullYear(年)
5.getUTCFullYear(): 返回UTC日期的4位数年份
6.setUTCFullYear(年):
7.getMonth(): 返回日期中的月份,以0开始计数
8.setMonth(月)
9.getUTCMonth(): 返回UTC日期中的月份,以0开始计数
10.setUTCMonth(月)
11.getDate(): 返回日期月份中的天数
12.setDate(日)
13.getUTCDate(): 返回UTC日期月份中的天数
14.setUTCDate(日)
15.getDay(): 返回日期中星期的星期几,0表示星期日,6表示星期六
16.getUTCDay(): 返回UTC日期中星期的星期几,0表示星期日,6表示星期六
17.getHours(): 返回日期中的小时数,0-23
18.setHours()
19.getUTCHours(): 返回UTC日期中的小时数,0-23
20.setUTCHours()
21.getMinutes(): 返回日期中的分钟数
22.setMinutes()
23.getUTCMinutes(): 返回UTC日期中的分钟数
24.setUTCMinutes()
25.getSeconds(): 返回日期中的秒数
26.setSeconds()
27.getUTCSeconds(): 返回UTC日期中的秒数
28.setUTCSeconds()
29.getMilliseconds(): 返回日期中的毫秒数
30.setMilliseconds()
31.getUTCMilliseconds(): 返回UTC日期中的毫秒数
32.setUTCMilliseconds()
RegExp类型
RegExp用来支持正则表达式。
通过以下方式,可以创建一个正则表达式:
1 | var expression = / pattern / flags; |
pattern
部分是一个正则表达式,可以包含字符类、限定符、分组、向前查找及反向引用。
而flags
部分是一个标志,表示正则表达式的行为。
g: 全局模式,表示模式将被应用到所有字符串中,而并非发现第一个匹配项时就停止。
i: 表示不分大小写
m: 表示多行模式。
1 | var re = null, i; |
RegExp实例属性
1.global: 布尔值,表示是否设置了g标志
2.ignoreCase: 布尔值, 表示是否设置了i标志
3.lastIndex: 整数值,表示开始搜索下一个匹配项的字符位置,从0开始算;
4.multiline: 布尔值,表示是否设置了m标志。
5.source: 正则表达式的字符串表示。
RegExp实例方法
**1.RegExp的主要方法是exec(),**该方法用于捕获组。exec()接收一个参数:要应用模式的字符串,然后返回包含第一个匹配项信息的数组。
eg:
1 | var text = "mom and dad and baby"; |
以上pattern包含两个捕获组,当把字符串传入exec()方法后,将匹配项及捕获组返回。
2.test()方法,接收一个字符串参数。若字符串与模式匹配,则返回true,否则返回false
3.toLocaleString()和toString()方法会返回正则表达式的字面量。
RegExp构造函数属性。
1.input 最近一次要匹配的字符串
2.lastMatch 最近一次的匹配项
3.lastParen 最近一次匹配的捕获组
4.leftContext input字符串中lastMatch之前的文本
5.multiline 是否所有表达式都使用多行模式。
6.rightContext input字符串中lastMatch之后的文本
模式的局限性
1.不能匹配字符串开始和结尾的\a \Z锚
2.不支持向后查找
3.不支持并集和交集
4.不支持原子组
5.不支持Unicode
6.不支持明明捕获组
7.不支持s和x匹配模式
8.不支持条件匹配
9.不支持正则表达式注释