JS的引用数据类型大致可以分为两类:基本引用类型 and 集合引用类型。
基本引用类型
- Date
- RegExp (正则)
- 原始值包装类型【重点】
- Boolean
- Number
- String
- 单例内置对象
- Global
- Math
<1> Date 日期对象
1.1 Date 对象的创建
- 无参数 :创建的是当前日期和时间的对象
let now = new Date()
- 字符串参数
- "月 / 日 / 年" ----- "9 / 23 / 2023"
- "月名 日 , 年" ----- "September 23 , 2023"
- "YYYY-MM-DDTHH:mm:ss:sssZ" ----- "2023-09-23..."
会自动调用 Date.parse() 方法将表示时间的字符串转化为时间戳(自 1970-01-01 00:00:00 以来经过的毫秒数)
- 一连串用逗号(,)隔开的数字
new Date( 2023 , 9 ,23)
会自动调用 Date.UTC() 方法将表示时间的一连串数字转化为时间戳(自 1970-01-01 00:00:00 以来经过的毫秒数)
1.2 Date 对象的一些实用方法
-
获得日期中指定部分的方法:年 or 月 or 日
- 年 getFullYear() - 月 getMonth() --- 0起点 - 日 getDate() -
Date.now() 获得当前时间的时间戳
<2> RegExp正则
2.1 元字符
元字符在正则表达式中有自己表示的特殊含义,所以如果要匹配这些元字符本身的话需要转义!!
( [ { ^ ? * +
-
{x} 匹配 x 次
-
{min,max} 匹配 min 到 max 次
-
[] 表示字符范围
- [abc]:查找方括号内任意一个字符。 - [^abc]:查找不在方括号内的字符。 - [0-9]:查找从 0 至 9 范围内的数字,即查找数字。 - [a-z]:查找从小写 a 到小写 z 范围内的字符,即查找小写字母。 - [A-Z]:查找从大写 A 到大写 Z 范围内的字符,即查找大写字母。 - [A-z]:查找从大写 A 到小写 z 范围内的字符,即所有大小写的字母。 -
?匹配 0 or 1 次
-
*匹配 0 or 任意次
-
+匹配 >= 1 次
-
^ 不是该字符
2.2 通配符
- · 除换行符之外的任意字符
- \d 单个数字 [0,9]
- \D 除了数字字符以外的字符
- \s 空白字符,包括空格、制表、换页符...
2.3 锚字符
- ^ 行首匹配 必须以这个正则开头
- $ 行尾匹配 必须以这个正则结尾
2.4 常见的正则表达式
// 匹配日期 yyyy-mm-dd (格式)
let regex = /^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/
// 匹配手机号码
let regex = /^1[34578][0-9]{9}$/
// 匹配用户名 【以字母or$开头;4~16位;特殊字符只能是$】
let regex = /^[a-zA-Z$][a-z0-9A-Z/$]{4,16}$/
<3> 单例内置对象 ———— Global
Global 对象是兜底对象,所有全局作用域中定义的函数和变量都会成为 Global 对象的属性和方法!!!
- isNaN()
- parseInt()
- eval() ....
ES 没有直接规定访问 Global 对象的方法,但浏览器将 windows 对象作为 Global对象的代理!!!