引用类型是把数据和功能组织到一起的结构,虽然像“类”,但不是“类”。
一、Date
构造:let now = new Date() 不传参则获取当前时刻,传参需传入毫秒数
日期转毫秒数:Date.parse() Date.UTC()
Date.parse()支持格式: 如果直接将这些格式的字符串传入Date(),后台自动调用Date.parse()
“月/日/年” “5/23/2021"
“月名 日,年” “May 23, 2021"
"周几 月名 日 年 时:分:秒 时区"
"YYYY-MM-DDTHH:mm:ss.sssZ"
如果传入的字符串不表示日期,则返回NaN
Date.UTC()接收参数是年、零起点月、日、时、分、秒、毫秒(前两个是必需的,后面都是默认1日,0时等)
Date.now()返回方法执行时日期和时间的毫秒数
toLocaleString() 返回与浏览器运行的本地环境一致的日期和时间,一般带AM/PM,但不带时区
toString() 返回带时区信息的日期和时间,带时区的24小时制
valueOf()返回毫秒数
日期格式转化方法:
toDateString() 周几、月、日、年
toTimeString() 时、分、秒、时区
toLocaleDateString() 周几、月、日、年
toLocaleTimeString() 时、分、秒
toUTCString() 显示完整的UTC时间
getTime() setTime()
getFullYear() setFullYear()
getUTCFullYear() setUTCFullYear()
getMonth() setMonth()
getUTCMonth() setUTCMonth()
getDate() setDate()
getUTCDate() setUTCDate()
getDay() setDay()
getUTCDay() setUTCDay()
getHours() …
getUTCHours()
getMinutes()
getUTCMinutes()
getSeconds()
getUTCSeconds()
getMilliseconds()
getUTCMilliseconds()
getTimezoneOffset() 返回以分钟计的UTC与本地时区的偏移量
二、RegExp
构造 const express = /pattern/flags const express = new RegExp(patternStr, flagsStr)
每个正则表达式可以带0个或多个标记
g,全局模式,表示查找字符串的全部内容,而不是找到第一个就结束
i,不区分大小写
m,多行模式,表示查找到一行文本末尾会继续查找
y,粘附模式,表示从lastIndex开始查找
u,Unicode模式,启用Unicode匹配
s,dotAll模式,表示元字符(.)匹配任意字符包括\n\r
实例属性:
global 是否设置了g
ignoreCase 是否设置了
unicode,是否设置了u
sticky,是否设置了y
multiline, 是否设置了m
dotAll, 是否设置了s
lastIndex,原字符串中下一次开始所搜的地方,始终从0开始
source, 正则表达式的字面量字符串
flags,正则表达式的标记字符串
实例方法:
exec() : 接受一个字符串参数,如果找到匹配项,返回包含第一个匹配信息的数组,数组包含两个属性index和input;没找到匹配项就返回null。
如果设置了全局模式,则每次调用exec()返回一个匹配信息;否则只会返回第一个匹配信息
如果设置了粘附模式,每次调用exec()只会在lastIndex()寻找匹配项,粘附模式覆盖全局模式
test():接受一个字符串参数,匹配返回true,否则返回false
toLocaleString()和toString()返回字面量字符串
valueOf()返回正则表达式本身
构造函数属性(静态属性):
input $_ 最后搜索的字符串
lastMatch $& 最后匹配的文本
lastParen $+ 最后匹配的捕获组
leftContext $` input字符串中出现在lastMatch前面的文本
rightContext $' input字符串中出现在lastMatch后面的文本
RegExp.$1 -RegExp.$9 包含第1-9个捕获组的匹配项
模式局限:
以下特性还没有得到ECMAScript的支持
\A和\Z锚(分别匹配字符串的开始和结尾)
联合及交叉类
原子组
x(忽略空格)匹配模式
条件式匹配
正则表达式注释
三、原始值包装类型
在以读模式访问字符串变量时,后台执行以下三步
1.创建一个String类型实例
2.调用实例上的特定方法
3.销毁实例
Boolean和Number也会有如上类似三步
Object()构造函数作为一个工厂方法,能够根据传入的值的类型,返回相应的原始值包装类型的实例
使用new调用原始值的包装类型的构造函数,与同名的转型函数不同
Boolean: 重写valueOf()方法,返回一个原始值true后者false,建议永远不要用
Number:
valueOf() 返回对象表示的原始数值
toLocaleString() toString() : 返回字符串,toString()可以接受一个基数参数
toFixed(n): 返回包含指定小数点位的数值字符串
toExponential(n):返回指定小数位的科学计数法字符串
toPrecision(): 根据情况返回最合理的输出结果。接收一个参数,表示结果中数字总位数
Number.isInteger() 判断一个数值是否保存为整数。
Number.isSafeInteger() 判断一个整数是否在安全范围 -2^53 + 1 2^53 - 1
String: 字符串由16位码元组成,对多数字符串来讲,每16位马元对应一个字符。
valueOf() toString() toLocaleString() : 返回字符串的原始值
length属性:字符的数量
charAt() :返回指定index的字符
charCodeAt(): 查看指定index的码元的字符编码
fromCharCode() : 根据给定的UTF-16码元创建字符串中的字符
Unicode基本多语言平面(BMP):用16位码元表示65536个字符
增补平面:每个字符使用另外16位去选择一个增补平面,每个字符使用两个16位码元的策略称为代理对
codePointAt():返回该索引位置的码点。码点是Unicode中的一个完整标识
fromCodePoint()
Normalize(): 选择一种规范化的形式,NFD(Normalization from D) NFC NFKD NFKC
字符串操作方法:不改变原值
Concat(): 将一个或多个字符串拼接成一个新的字符串,原值不变
Slice(start, end): 负数都会加上长度
Substr(start, count): 第一个负数会加上长度, 第二个负参数转为0
subString(start, end): 所有的负参数转为0
位置方法:indexOf() lastIndexOf()
包含方法:startsWith() endsWith() includes()
trim方法: trim() trimLeft() trimRight() 不改变原值
Repeat(n):表示将字符串复制多少次,然后返回。不改变原值
padStart(n, char): 复制字符串到指定长度,长度不够时,用指定字符填充;长度小于字符串长度时,返回原字符串
padEnd()
迭代与解构 @@iterator
Let message = "abcde"
Message[Symbol.iterator].next()
Console.log(…message)
大小写转换 toLowerCase() toLocaleLowerCase()
toUpperCase() toLocaleUpperCase()
字符串模式匹配
Match() : 本质等于RegExp.exec()
Search(): 返回模式匹配的第一个索引位置,没有返回-1
Replace():
第二个参数为字符串时,有几个特殊字符序列,可以用用来插入正则表达式操作的值
$$ $
$& 匹配整个模式的子字符串,RegExp.lastMatch
$' 匹配的整个字符串之前的字符串,RegExp.rightContext
$` 匹配子字符串之后的字符串,RegExp.leftContext
$n 匹配的第n个捕获组的内容
$nn 匹配第nn个捕获组的内容
第二个参数可以为函数,在只有一个匹配项时,函数接受三个参数(match匹配的子字符串,pos匹配的开始位置,originalText整个字符串)
Split():第一个参数,分隔符,第二个参数数组大小,多余的丢掉
localeCompare() 前正后负
HTML方法:
Anchor(name) <a name='name'>String</a>
Big() <big>String</big>
Bold()
Fixed() <tt>String</tt>
fontcolor(color) <font color="color">String</font>
Fontsize(size)
Italics() <i>string</i>
Link(url) <a href="url">string</a>
Small()
Strike()
Sub()
Sup()
四、单例内置对象
由ECMAScript实现提供、与宿主环境无关
Global: 全局作用域内定义的变量和函数都会变成Global的对象属性
URL编码方法
编码统一资源标识符
encodeURL(): 不会编码属于URL组件的特殊字符,如冒号 斜杠 问号 井号
encodeURLComponent(): 将所有非字母字符都进行编码
decodeURL()
decodeURLComponent()
这方法取代了escape()和unescape()
eval():将字符串参数当做JavaScript执行
window对象
当一个函数没有明确this指向时,其this为Global
Math
Min()
Max()
Ceil()
Floor()
Round()
Fround() 返回数值最接近的单精度(32位)浮点值表示
Random() 返回一个0~1的随机数。包括0,不包括1
Abs()
Pow(x, power)
Pow(..nums)
Trunc() 返回整数部分,删除所有小数
Sqrt()