Js 内建对象
数组解构
对象解构
对象的序列化
JS 中的对象使用时都是存在于计算机的内存中的,序列化指将对象转换为一个可以存储的格式,在 JS 中对象的序列化通常是将一个对象转换为字符串(JSON 字符串)
编写 JSON 的注意事项:
1、JSON 字符串有两种类型:
JSON 对象 {}
JSON 数组 []
2、JSON 字符串的属性名必须使用双引号引起来
3、JSON 中可以使用的属性值(元素)
数字(Number)
字符串(String) 必须使用双引号
布尔值(Boolean)
空值(Null)
对象(Object {})
数组(Array [])
Map
Map 用来存储键值对结构的数据(key-value)
Object 中存储的数据就可以认为是一种键值对结构
Map 和 Object 的主要区别:
Object 中的属性名只能是字符串或符号,如果传递了一个其他类型的属性名,JS 解释器会自动将其转换为字符串
Map 中任何类型都可以称为数据的 key
map 的使用
map 的转换
遍历 map
Set
Set 用来创建一个集合
它的功能和数组类似,不同点在于 Set 中不能存储重复的数据
Math
Math 是一个工具类,提供了数学运算的一些常量和方法
Date
在 JS 中所有的和时间相关的数据都由 Date 对象来表示
Date 使用
Date 格式化
包装类
在 JS 中,除了直接创建原始值外,也可以创建原始值的对象
包装类:
JS 中一共有 5 个包装类
String --> 字符串包装为 String 对象
Number --> 数值包装为 Number 对象
Boolean --> 布尔值包装为 Boolean 对象
BigInt --> 大整数包装为 BigInt 对象
Symbol --> 符号包装为 Symbol 对象
通过包装类可以将一个原始值包装为一个对象
当我们对一个原始值调用方法或属性时,JS 解释器会临时将原始值包装为对应的对象,然后调用这个对象的属性或方法
由于原始值会被临时转换为对应的对象,这就意味着原始值对象中的方法都可以直接通过原始值来调用
正则表达式
正则表达式用来定义一个规则
通过这个规则计算机可以检查一个字符串是否符合规则或者将字符串中符合规则的内容提取出来
正则表达式也是 JS 中的一个对象,所以要使用正则表达式,需要先创建正则表达式的对象
创建正则表达式对象
正则表达式语法
量词
正咋表达式匹配模式
1、默认(贪婪模式)
在 JavaScript 正则表达式中,默认情况下量词(如
*
、+
、?
)是贪婪的。这意味着它们会尽可能多地匹配字符。例如,对于正则表达式
/a.*b/
和字符串"aabbbc"
,它会匹配从第一个a
到最后一个b
的整个字符串,即"aabbbc"
。因为.*
会尽可能多地匹配中间的字符,直到遇到最后一个b
。
2、非贪婪模式(懒模式)
通过在量词后面添加
?
可以将其转换为非贪婪模式。在非贪婪模式下,量词会尽可能少地匹配字符。例如,对于正则表达式
/a.*?b/
和字符串"aabbbc"
,它会匹配"aab"
。因为.*?
会在遇到第一个b
时就停止匹配,只匹配最少的字符来满足表达式。
3、全局匹配模式(g
)
当在正则表达式末尾添加
g
标志(如/pattern/g
)时,它会进行全局匹配。这意味着会在整个字符串中查找所有匹配的部分,而不是只找到第一个匹配就停止。例如,对于正则表达式
/a/g
和字符串"aaab"
,它会匹配所有的a
,返回一个包含三个a
的数组(在使用match
方法时)。如果没有g
标志,只会返回第一个a
。
4、不区分大小写匹配模式(i
)
在正则表达式末尾添加
i
标志(如/pattern/i
)会使匹配不区分大小写。例如,对于正则表达式
/a/i
和字符串"Aa"
,它会匹配A
,因为不区分大小写。
5、多行匹配模式(m
)
当添加
m
标志(如/pattern/m
)时,^
和$
的匹配行为会发生改变。^
不仅可以匹配字符串开头,还可以匹配每一行的开头;$
不仅可以匹配字符串结尾,还可以匹配每一行的结尾。例如,对于正则表达式
/^a/m
和字符串"a\nb"
,它会匹配第一行开头的a
,如果没有m
标志,它只会匹配整个字符串开头的a
,对于这个例子就不会匹配
正则表达式提取
exec()用于获取字符串中符合正则表达式的内容
字符串的正则方法
垃圾回收机制
如果一个对象没有任何的变量对其进行引用,那么这个对象就是一个垃圾对象
垃圾对象的存在,会严重的影响程序的性能
在 JS 中有自动的垃圾回收机制,这些垃圾对象会被解释器自动回收,我们无需手动处理
对于垃圾回收来说,我们唯一能做的事情就是将不再使用的变量设置为 null
文章转载自:木子七
评论