5 基本引用类型

94 阅读4分钟

对象(引用值)是某个特定引用类型(对象定义)的实例

Date

日期对象,构造时需要传入距离1979.1.1凌晨的毫秒数,默认传入当前时间,如果传入的不是毫秒数,则默认先调用Date.parse()进行转换

传入毫秒,封装对日期时间的操作,再返回日期和时间

构造

const date = new Date(\[特定格式日期/毫秒数]);

静态方法

  • Data.parse()/Date.UTC():将特定日期格式转换为毫秒表示,如果不是特定格式,则返回NaN
  • Date.now():返回执行时时期和时间的毫秒数

方法

1. 继承的方法

  • toLocaleString()/toString():返回浏览器/系统的日期和时间
  • valueOf():返回日期的毫秒数

2. 其他方法

用于获取年月日和时间,常见MDN

RegExp

正则表达式

传入模式pattern和标记flags创建规则,再调用方法来将规则应用到目标字符串上,返回特定数据

构造

  • const reg = /pattern/flags;
  • const reg = new RegExp(pattern,flags);
let pattern1 = /[bc]at/i;
let pattern2 = new RegExp('[bc]at','i');//与上面等价

pattern

常见MDN

flags

image.png

静态方法

toLocaleString/toString:返回正则表达式字面量 valueOf:返回正则表达式本身

方法

exec():输入目标字符串,返回规则匹配结果 test():输入目标字符串,返回是否匹配

Function

常见后续章节

原始值包装类型

每当用到原始值的方法或属性时(读模式),后台就会创建一个相应原始包装类型的对象

注意使用之后立即销毁,即后台创建的对象只存在于读模式访问原始数据的那一行

let s1 = 'some text';
let s2 = s1.substring(2,5);// 读模式访问s1,后台创建包装对象
console.log(s2);//me
s1.color = 'red';//读模式访问s1,给包装对象添加属性
console.log(s1.color)//undefined,上面添加属性到包装对象,代码执行完后后台自动销毁

Boolean

  • toString():返回'true'或'false'
  • valueOf():返回true或false

Number

  • toString([进制]):返回数值对应进制的字符串
  • toFixed([小数点位数]):返回包含指定小数点位数的数值字符串

String

属性

  • length:返回字符串长度(包含多少个16位码元)

方法

  • charAt():返回指定位置的字符
  • indexOf/lastIndexOf([搜索字符串],[指定开始位置]):从指定开始位置向尾(头)开始搜索字符串中出现指定字符串位置
  • startsWith/endsWith/include():是否指定字符出现在原字符串开头/结尾/任意位置
  • trim():返回删除原字符串两端空格的新字符串
  • repeat([次数]):返回重复了指定次数的字符串
  • padStart/padEnd([指定总长度],[指定字符串]):返回左(右)填充后的字符串
  • match(pattern):接受正则表达式对象,与正则表达式exec()方法相同
  • search(pattern):返回查找到的索引位置
  • replace(pattern,[字符串]):替换对应字符串
  • localeCompare([字符串]):比较两个字符串,返回-1(字符串参数靠前),0,1(原字符串靠后)
  • 迭代与解构:[...s1]:返回的是s1每个字符组成的数组

单例内置对象

定义

ES程序开始执行时就已经存在的对象

前面提及的包装对象和Object就是一开始就存在的,不需要开发者显式构造

Global

全局中定义的变量和函数都会变为Global对象的属性和方法,当然也有一开始就写好的方法

URI编码方法

  • encodeURI()/encodeURIComponent()
    有效的URI不能包含某些字符,如空格,使用上述方法能替换掉这些字符,前者只编码无效字符,后者会将所有非字母字符都编码,一般前者用于协议+地址,后者则用于追加的参数
let uri = "http://www.wrox.com/illegal value.js#start"; 
// "http://www.wrox.com/illegal%20value.js#start" 
console.log(encodeURI(uri));
// "http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.js%23start" 
console.log(encodeURIComponent(uri));
  • decodeURI()/decodeURIComponent() 与上面同理

eval()

完整的ES代码解释器,执行输入的js代码字符串,如eval("console.log('hi')")

Window

目前简单理解为Global之上的代理,全局定义的属性和方法都放在这里面

Math

使用Math提供的方法,比在js中自己实现会快很多

属性

常见MDN

方法

min()/max()

接受任意多参数

ceil()/floor()/round()

取整,最后一个四舍五入

random()

生成[0,1)的随机数

其他

常见MDN