【JS的引用类型大致可以分为两类】:
-
基本引用类型
- Date - RegExp - 原始值包装类型 - Boolean - Number - String - 单例内置对象 - Global - Math -
集合引用类型
- Object - Array - Map - WeakMap - Set - WeakSet
基本引用类型
<1> Date
<2> RegExp 正则
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) 通配符
- · 除换行符之外的任意字符
- \d 单个数字 [0,9]
- \D 除了数字字符以外的字符
- \s 空白字符,包括空格、制表、换页符...
3) 锚字符
- ^ 行首匹配 必须以这个正则开头
- $ 行尾匹配 必须以这个正则结尾
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> 原始值包装类型
- String
- Boolean
- Number
<4> 单例内置对象
内置对象由 ES 提供,与宿主环境无关 ,并在 ES 程序开始执行时就存在的!!!
1) Global 对象
Global 对象是兜底对象,所有全局作用域中定义的函数和变量都会成为 Global 对象的属性和方法!!!
- isNaN()
- parseInt()
- eval() ....
ES 没有直接规定访问 Global 对象的方法,但浏览器将 window 对象作为 Global对象的代理!!!
2) Math 对象
很多数学方法 ....