引用类型是把数据和功能组织到一起的结构.虽然从技术上面讲 JavaScript 是一门面向对象的语言,但是 ES 缺少传统的面向对象语言的某些数据结构,包括类和接口.引用类型有时候也称为引用对象
RegExp
ES通过 RegExp 类型支持正则表达式.正则表达式可以是任何简单或者复杂的正则表达式.包括字符类 限定符号 分组 向前查找和反向引用.每个正则表达式可以带零个或者多个 flags,用于正则表达式的行为
- g 全局模式
- i 不区分大小写
- m 多行模式
- y 粘附模式
与其他语言的正则表达式类似,所以的元字符在模式中必须转义.转义符号是反斜杠()
RegExp 实例方法
exec方法
RegExp 实例主要方法是 exec(),主要用于配合捕获组使用.这个方法只接受一个参数,即要应用模式的字符串.如果找到匹配项,则返回包括第一匹配信息的数组,如果没有找到匹配项,则返回 null. 返回的数组虽然是 Array 实例,但是包含两个额外的属性:index和 input.index是字符串中匹配模式的其实位置,input 是要查找的字符串.
test方法
正则表达式另外一个方法是 test(),接收一个字符串参数,如果输入文本域模式匹配,则参数返回 true,否则返回 false
原始值包装类型
为了方便操作值,ES 提供 3 中特殊的引用类型:Boolean Number 和 String.
let s1 = "some text"
let s2 = s1.substring(2)
s1是包含字符串的变量,它是一个原始值.s1调用 substring()方法,并把结果保存到s2中.上述两步操作中其实在 JavaScript 后台可以分为以下三步
- 创建一个 String 类型实例
- 调用实例上的特殊方法
- 销毁实例
let s1 = new String("some text")
let s2 = s1.substring(2)
s1 = null
Boolean
Boolean 是对应的引用类型.要创建一个 Boolean 对象,就使用 Boolean 的构造函数,并传入 true/false.Boolean构造函数创建的是对象,而不是数值.因此使用 typeof 检查基本类型是object,而不是 boolean
Number
Number 是对应的引用类型.要创建一个 Number 对象.就使用 Number 构造函数并传入一个数值.Number 类型重写了 valueof() toString()灯方法.同时还提供将数值格式化为字符串的方法
-toFixed : 返回包含指定小数点位数的数值字符串
使用包装类型数要区分是构造函数还是静态方法,构造函数创建的是对象,静态方法是转换数据类型
let a = Number("1") //转换类型
let c = new Number(2) /创建 Number实例
String
String 是对应字符串的引用类型.要创建 String 对象,使用 String 构造函数并传入一个数字
- JavaScript 字符 charAt /charCodeAt 函数
字符串由字符组成.可以使用 charAt 函数返回给定索引的字符.使用 charCodeAt 方法可以查看指定码元的字符编码 - 字符串操作方法 slice/substr/substring
JavaScript 提供 3 中从字符串提取字符串的方法,分别是 slice/substr/substring.这三个方法都返回他们字符串中的一个字符串,而且都接受一个参数或者两个参数.第一个参数表示字符串开始的位置,第二个参数 slice/substring表示字符串提取结束的位置,substr 表示字符串的长度.第二个参数可以省略,如果省略则表示取到字符串最后一位.但是对于第二个参数是负数的时候,三个方法表示就不同了,slice 参数为负数的时候,是将所有的负数加上字符的长度,substr 方法是将第一个负值当成字符串的长度加上该值,将第二个参数转换成 0,substr函数是已参数的最小值为其实位置,参数最大值为提取结束位置.substring 方法将所有的参数都转换成 0 - 字符串位置方法
indexof: 从开始位置查找指定字符串的位置
lastIndexof: 从结束位置开始查找字符串的指定位置
位置方法的第二个参数表示字符串查找的开始位置.如果没有找到的话,返回 -1 - 字符串包含方法
startWith:表示从开始位置是否包含字符串,第二个参数表示开始位置的索引,默认为 0
endWith: 表示从结束位置开始查找索引,第二个参数表示开始索引的地址
includes: 表示字符串是否包含指定字符串,第二个参数表示开始的位置 - trim 方法
trim 去除前后空格方法 - repeat 方法
将所有字符串复制多少遍 - padStart -padEnd
padStart padEnd 会复制字符串,如果字符串小于指定长度则会使用第二个参数填充,直到满足条件.padStart 从头开始填充,padEnd表示从尾部开始填充.如果指定的字符串小于字符串的长度,则返回原来的长度 - 字符串匹配方法
match 方法和 exec 方法相似,用来检测字符串是否满足特定格式.search 方法则表示查找第一个满足条件字符串的位置.这些方法可以已正则表达式为参数传入
单例内置对象
url编码
encodeURI/encodeURIComponent 方法用来统一资源表示符.encodeURI 方法对整个 URI 进行编码.encodeComponent 方法用于编码 URI 中单独的组件.encodeURI 不会编码属于 URI 组件的特殊字符,比如冒号,斜杆,问号.而 encodeURIComponent 会编码所有非标准字符
网友评论